function solution(strings, n) {
return strings.sort((a,b) => a[n]-b[n]);
}
이렇게 썼는데 틀려서 알아보니, 저 (a,b) => a-b 식 정렬은 숫자에만 해당된다구,,,
그래서 다른 방법을 생각해봤다.
function solution(strings, n) {
strings.forEach((word) => {
word = word[n] + word;
})
strings.sort().forEach((word) => {
word.slice(0,1);
})
return strings;
}
같으면 또 적용 안됨. 같은 경우의 수를 생각해야함
function solution(strings, n) {
return strings.sort((a,b) => {
//다른 경우
if (a[n] !== b[n]) {
return a[n].charCodeAt(0) - b[n].charCodeAt(0);
}
return a.localeCompare(b)
})
}
찾아보니 charCode라는 게 있었다. 쓰니까 바로 해결~!
charCodeAt
charCodeAt(0) 은 문자열에서 특정 문자의 유니코드(UTF-16) 값을 반환한다.
'a'.charCodeAt(0); //97
'b'.charCodeAt(0); //98
이런식으로 알파벳을 숫자로 비교할 수 있다.
localeCompare
문자열을 사전 순으로 비교하는 데 사용된다.
반환값으로는 비교 알파벳과 얼마나 떨어져있는지 음수/양수로 나타나고, 같을 경우 0으로 반환된다.
'apple'.localeCompare('banana') //-1
'apple'.localeCompare('apple') //0
'banana'.localeCompare('apple') //1
'코딩 테스트 > test_javaScript' 카테고리의 다른 글
[코딩테스트/javaScript] 숫자 짝꿍 (1) | 2025.01.25 |
---|---|
[코딩테스트/javaScript] 옹알이 (2) (1) | 2025.01.20 |
[코딩테스트/javaScript] 로또의 최고 순위와 최저 순위 (1) | 2025.01.19 |
[코딩테스트/javaScript] 기사단원의 무기 (1) | 2025.01.18 |
[코딩테스트/javaScript] 덧칠하기 (1) | 2025.01.17 |