Problem
Solve
내 풀이
function solution(strings, n) {
strings.sort(function(a, b) {
const first = a[n];
const second = b[n];
if (first === second) {
return (a > b) - (a < b);
}
return (first > second) - (first < second);
});
return strings;
}
What I learned
if (first === second) {
return (a > b) - (a < b);
}
return (first > second) - (first < second);
문자열의 정렬 함수 구성
문자열의 경우 대소 비교를 통해 Boolean 값으로 변환한 뒤 해당 Boolean 을 피연자로 활용한다. Boolean type 에 뺄셈을 하면 Boolean 은 각각 0 과 1 로 암묵적 형변환이 일어난다.
(a > b) - (a < b);
는 아래와 같이 평가될 수 있다.
true(1) - false(0) = 1
false(0) - true(1) = -1
fasle(0) - fasle(0 ) = 0