본문 바로가기
Coding Test/JavaScript

[Javascript] (프로그래머스 level 1) 문자열 내 마음대로 정렬하기

by Chaedie 2022. 6. 30.
728x90

[Javascript] (프로그래머스 level 1) 문자열 내 마음대로 정렬하기

💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.

내 풀이

function solution(strings, n) {
    return strings.sort((a, b) => {
        if (a[n] === b[n]) {
            return a > b ? 1 : -1;
        } else {
            return a[n] > b[n] ? 1 : -1;
        }
    });
}
  • 숫자로 된 소팅은 a-b 만 하면 되었는데, 문자는 어떻게 하는지 모르겠더라. 검색해서 이리저리 찾아보고 겨우 해결했다. 숫자가 a-b 이었던 이유도 a>b하면 (0이상, 0, 0이하) 로 나뉘기 때문이었는데, 이걸 정확하게 이해하지 않고 넘어가니 문자로 넘어왔을 때 해결을 못했다.
  • 이거 아쉬운게 java에도 comparable interface가 있고, 이거 이용해서 소팅하는 방식이 있는데, 그 때도 대충 넘겼더니 javascript에 와서도 쓸데없이 검색하는 시간을 가졌다. 물론 필요할 때 찾아 공부하는게 맞는 방식이지만 너무 내가 대충 넘기나? 하는 생각도 하게 되었다.
  • 이런 기초적인 것들을 문제를 통해 훑어보게 해주는 프로그래머스는 참 좋은 플랫폼인듯 👍

다른 사람 풀이

function solution(strings, n) {
    // strings 배열
    // n 번째 문자열 비교
    return strings.sort((s1, s2) => s1[n] === s2[n] ? s1.localeCompare(s2) : s1[n].localeCompare(s2[n]));
}
  • localeCompare()라는 메서드가 있는지 몰랐음 😭😭 참 유용한 메서드가 많다.

배운 점, 느낀 점

  • 알고리즘이랄게 딱히 없는 기본문제에서도 배울게 굉장히 많다.
  • 문제가 참 좋다.

댓글