프로그래머스 Level 1 - 문자열 내 마음대로 정렬하기 - charCodeAt, localeCompare

크롱·2023년 10월 19일
0

코딩테스트

목록 보기
37/61

문제

문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.

풀이

charCodeAt

(a > b ? 1 : -1) 코드는 문자열 a와 b를 사전순으로 정렬하는 역할을 합니다.
sort함수는 두 개의 인자를 받아, 첫 번째 인자가 두 번째 인자보다 작으면 음수, 같으면 0, 크면 양수를 반환해야 합니다.

function solution(strings, n) {
    var answer = strings.sort(
       (a,b)=>(a.charCodeAt(n)-b.charCodeAt(n)) == 0 ?   
      // n번째의 문자를 아스키코드로 비교
       (a > b ? 1 : -1) :    // 문자가 같을경우, 사전순 나열을 위한 비교
       (a.charCodeAt(n)-b.charCodeAt(n)))  
    // 다를경우, n번째 문자만 기분으로 정렬
    return answer;
}

localCompare

내부 character 가 같으면 전체 string 을 비교하고 내부 character 가 다르면 내부 character 을 비교한다

function solution(strings, n) {
    // strings 배열
    // n 번째 문자열 비교
    return strings.sort((s1, s2) => s1[n] === s2[n] ? 
                        s1.localeCompare(s2) : 
                        s1[n].localeCompare(s2[n]));
}
profile
👩‍💻안녕하세요🌞

0개의 댓글