문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.
(a > b ? 1 : -1) 코드는 문자열 a와 b를 사전순으로 정렬하는 역할을 합니다.
sort함수는 두 개의 인자를 받아, 첫 번째 인자가 두 번째 인자보다 작으면 음수, 같으면 0, 크면 양수를 반환해야 합니다.
function solution(strings, n) {
var answer = strings.sort(
(a,b)=>(a.charCodeAt(n)-b.charCodeAt(n)) == 0 ?
// n번째의 문자를 아스키코드로 비교
(a > b ? 1 : -1) : // 문자가 같을경우, 사전순 나열을 위한 비교
(a.charCodeAt(n)-b.charCodeAt(n)))
// 다를경우, n번째 문자만 기분으로 정렬
return answer;
}
내부 character 가 같으면 전체 string 을 비교하고 내부 character 가 다르면 내부 character 을 비교한다
function solution(strings, n) {
// strings 배열
// n 번째 문자열 비교
return strings.sort((s1, s2) => s1[n] === s2[n] ?
s1.localeCompare(s2) :
s1[n].localeCompare(s2[n]));
}