250x250
Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

devlog_owen

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

algorithm/(js)프로그래머스

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

developer_owen 2023. 11. 8. 21:10
728x90

문제

 

지난번에 풀었던 문제 중 charAt이랑 sort 메서드가 바로 떠올랐다. 이번거는 금방 풀겠다 싶었는데 생각보다 문제가 어려웠다... 


 

 

나의 풀이

function solution(strings, n) {
    var answer = strings.sort((a, b) => {
        let charA = a.charAt(n);
        let charB = b.charAt(n);
        if (charA === charB) {
           
            return a.localeCompare(b);
        } else {
            return charA.localeCompare(charB);
        }
    });

    return answer;
}

 



1. var answer = strings.sort((a, b) => {:

sort 메서드를 사용해서 정렬한 결과를 저장한다. 정렬된 기준은 아래의 내용이다.


2. 비교중인 문자열 a,b에서 인덱스에 있는 문자를 추출해 각각 charA, charB  변수에 저장

const charA = a.charAt(n);

const charB = b.charAt(n);:

 

charAt(n) : 문자열 중 n번째 인덱스를 추출함

 

3. charA와 charB가 같으면 n번째 인덱스 문자가 같다는 뜻임.

이럴 경우 두 문자열을 사전순으로 정렬해야함=> localeCompare 함수로 사전순으로 비교해 결과 반환

string1.localeCompare(string2);

string1과 string2는 비교하려는 두 문자열임. 

string1 이 string2 보다 사전적으로 앞에 나오면 -1

string1 이 string2 보다 사전적으로 뒤에 나오면 1

string1 이 string2 과 같으면 0 반환

 

 

4. charA와 charB가 같지 않으면 n번째 인덱스 문자가 다르다는 뜻임.  localeCompare 로  charA, charB를 비교해서 반환

 

 


 

다른 사람 풀이

 

본문1


 

회고

 

본문1


 

 

 

 

728x90