devlog_owen
[프로그래머스] 문자열 내마음대로 정렬하기 본문
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
'algorithm > (js)프로그래머스' 카테고리의 다른 글
[프로그래머스] 이진 변환 반복하기 (1) | 2023.11.09 |
---|---|
[프로그래머스] 최댓값과 최솟값 (0) | 2023.11.09 |
[프로그래머스] 자릿수 더하기 (0) | 2023.11.07 |
[프로그래머스] JadenCase 문자열 만들기 (0) | 2023.11.07 |
[프로그래머스] 나누어 떨어지는 숫자 배열 (0) | 2023.11.07 |