프로그래머스 Lv.1 : 문자열 내 마음대로 정렬하기

zeroequaltwo·2022년 11월 18일
0

코딩테스트

목록 보기
36/69

문제

프로그래머스 문제

내 풀이

  • 문자열.charCodeAt(인덱스) -> 유니코드로 해당 인덱스의 문자 찾아줌
function solution(strings, n) {
    return strings.sort().sort((a, b) => a.charCodeAt(n) - b.charCodeAt(n));
}

개선점

  • localeCompare 메소드 처음 봐서 갖고왔다. 두 문자열의 사전순으로 비교해준다고 한다.
  • 기준문자열.localeCompare(비교문자열) -> 비교문자열이 기준문자열보다 뒤에 있으면 -1, 앞에 있으면 1, 같으면 0
function solution(strings, n) {
    return strings.sort((s1, s2) => s1[n] === s2[n] ? s1.localeCompare(s2) : s1[n].localeCompare(s2[n]));
}
  • 아래는 아이디어가 좋아서 갖고왔다. 우선 n번째 문자를 모든 문자의 머리에 붙이고 sort()로 비교한 다음 앞머리에 붙은 문자열을 다시 뗀다.
function solution(strings, n) {
    var answer = [];
    for (var i = 0; i < strings.length; i++) {
        var chu = strings[i][n];
        strings[i] = chu + strings[i];
    }
    strings.sort();
    for (var j = 0; j < strings.length; j++) {
        strings[j] = strings[j].replace(strings[j][0],"");
        answer.push(strings[j])
    }

    return answer;
}
profile
나로 인해 0=2가 성립한다.

0개의 댓글