문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.
strings | n | return |
---|---|---|
["sun", "bed", "car"] | 1 | ["car", "bed", "sun"] |
["abce", "abcd", "cdx"] | 2 | ["abcd", "abce", "cdx"] |
function solution(strings, n) {
return strings.sort((a,b) => {
// strings 안에 있는 요소에서 n번째 글자를 기준으로 오름차순 정렬
if (a[n] > b[n]) return 1;
else if (a[n] < b[n]) return -1;
// n번째 글자가 같으면 사전순으로 정렬.
else return a > b ? 1 : -1;
})
}
sort()
sort 메서드는 비교 함수를 작성해야 하는데, 이 안에는 1, 0, -1 총 3가지 경우로 나눌 수 있고 일반적으로 조건문과 배개변수의 비교를 사용한다.
문제에 있는 예제를 사용해서 조건인
이 두 가지를 맞춰서 코드를 작성하자면,
if(b [n] > a [n]) return -1; //오름차순
if(a > b) return 1; //오름차순
과 같이 작성할 수 있다.