문자열 내 마음대로 정렬하기

hyuri·2023년 9월 25일
0

코딩테스트 연습

목록 보기
34/70

내가 작성한 답

function solution(strings, n) {
    let answer = strings.sort((a,b) => {
        if (a[n] !== b[n]) {
            return a[n] > b[n] ? 1 : -1;
        }
        return a > b ? 1 : -1;
    });
    return answer;
}

다른 답

function solution(strings, n) {
    // strings 배열
    // n 번째 문자열 비교
    return strings.sort((s1, s2) => s1[n] === s2[n] ? s1.localeCompare(s2) : s1[n].localeCompare(s2[n]));
}

해석

나는 sort를 사용해서 비교 대상의 n 번째 인덱스가 같지 않을 경우에 a의 n번째 인덱스의 글자가 클 경우 양수인 1을 지정해서 순서를 바꾸고 작을 경우 순서를 유지하는 것을 사용했다.

다른 답은 localeCompare() 메서드를 사용했다.
sort를 먼저 사용한 후 비교 대상의 n번째 인덱스가 같을 경우에는 비교 대상 자체를 localeCompare()을 사용해서 비교한 후 정렬 순서를 변경했고 같지 않을 경우에는 n 번째 인덱스 끼리 비교하여 정렬했다.

profile
개발자가 되고 싶은 지망생

0개의 댓글