[프로그래머스] 문자열 내 마음대로 정렬하기

쿼카쿼카·2022년 9월 18일
0

알고리즘

목록 보기
21/67

문제

코드

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;
    });
    // String.localeCompare를 이용한 풀이
    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')는 음의 정수를 반환한다.
  • 비교도 가능하고 나름 코드도 깔끔해보이지만 시간이 내 코드에 비해 몇 배는 더 걸린다ㅎㅎㅎㅎ 짧은 게 다가 아니다.

참고 사이트

profile
쿼카에요

0개의 댓글