문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.
function solution(strings, n) {
let answer = strings.sort((a,b) => {
if(a[n] > b[n]) return 1; // 작은 값이 앞으로 가야하니까 순서가 바뀐다.
if(a[n] < b[n]) return -1; // 작은 값이 앞에 있어도 되니까 순서가 바뀌지 않는다.
if(a[n] === b[n]){
if(a>b) return 1;
if(a<b) return -1;
return 0;
}
})
return answer;
}
sort 동작의 원리를 이용한 방법 a-b
반환 값 <0 : a가 b보다 앞에 있어야 한다.
반환 값 = 0 : 위치가 바뀌지 않는다.
반환 값 > 0 : b가 a보다 앞에 있어야 한다.
function solution(strings, n) {
let answer = strings.sort((a,b) => {
if(a[n] === b[n]){
return a.localeCompare(b);
} else {
return a[n].localeCompare(b[n])
}
});
return answer;
}