문제

코드
function solution(strings, n) {
return strings.sort((a, b) => {
if(a[n] > b[n]) return 0;
else if(a[n] < b[n]) return -1;
else return a>b ? 0 : -1;
});
return strings.sort((a, b) => a[n] === b[n] ? a.localeCompare(b) : a[n].localeCompare(b[n]));
}
sort이용한 풀이
- sort는 숫자에서는 return a-b로 해도 되지만, 문자열에서는 if로 묶어 0과 양의정수 혹은 음의 정수를 return 해야한다.
- 내가 푼 풀이가 다소 복잡해보이지만 마지막에 유쾌한 반전이 있다.
String.localeCompare
- 'a'.localeCompare('c')는 음의 정수를 반환한다.
- 비교도 가능하고 나름 코드도 깔끔해보이지만 시간이 내 코드에 비해 몇 배는 더 걸린다ㅎㅎㅎㅎ 짧은 게 다가 아니다.
참고 사이트