문제 링크
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 유형
정렬 (Lv.1)
문제 풀이
sort 메소드 파라미터로 compareFunction을 삽입해 정렬 순서를 정의했다.
compareFunction
(a, b가 비교되는 두 요소일때)
- compareFunction(a, b)의 반환값 < 0: a의 인덱스가 b의 인덱스보다 작도록 정렬한다.
- compareFunction(a, b)의 반환값= 0
- compareFunction(a, b)의 반환값 > 0: b의 인덱스가 a의 인덱스보다 작도록 정렬한다.
문제에서 인덱스 n의 문자가 같을 경우에는 사전순으로 앞선 문자열이 앞쪽에 위치한다고 명시되어 있다.
따라서, compareFunction의 반환값이 0일 경우에는 문자열 전체를 비교해 정렬한다.
코드
function solution(strings, n) {
return strings.sort((a, b) => {
// 인덱스 n번째 문자를 오름차순으로 정렬하고, 문자가 같을때는 사전순으로 문자열을 정렬한다.
return a[n] < b[n] ? -1 : a[n] > b[n] ? 1 : a < b ? -1 : a > b ? 1 : 0;
});
}
'알고리즘' 카테고리의 다른 글
[프로그래머스] 메뉴 리뉴얼 JavaScript (0) | 2022.07.08 |
---|---|
[백준] 1260 DFS와 BFS node.js (0) | 2022.07.08 |
[백준] 1932 정수 삼각형 node.js (0) | 2022.07.05 |
[백준] 10972 다음 순열 node.js (0) | 2022.07.02 |
[프로그래머스] 다음 큰 숫자 JavaScript (0) | 2022.06.29 |