반응형
코딩테스트 연습 > 연습문제 > 문자열 내 마음대로 정렬하기 Lv1
https://programmers.co.kr/learn/courses/30/lessons/12915
문제정리
보통 알파벳 순으로 정렬을 한다고 하면은 제일 앞글자로 정렬을 하는 것입니다.
하지만 여기서 문제는, 말 그대로 내 맘대로 정렬하기입니다.
알파벳으로 정렬한다는 것이 무조건 앞의 글자가 아니라는 뜻입니다.
그래서 strings라는 배열과, n이라는 몇 번째 글자를 기준으로 할 것인지 input 값을 줍니다.
그래서 여기서 sort를 사용할 것인데, 항상 무심코 a-b를 주로 사용해 왔는데 조건을 줄 수 있는 것을 MDN을 우연히 보고 알았습니다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
a를 기준으로, b보다 작으면 return -1을 하여 배열에서 앞으로, b보다 크면 return 1, 동일하면 return 0으로 설정해줄 수 있습니다.
코드
function solution(strings, n) {
var answer = strings.sort((a,b)=>{
if(a[n]>b[n]) return 1;
if(a[n]<b[n]) return -1;
if(a[n]===b[n]){
if(a>b) return 1
if(a<b) return -1
return 0
}
})
return answer;
}
이 문제에서는 값이 같아도, 첫 알파벳 순서에 맞게 정렬을 해줘야 하기 때문에 세 번째 조건식 안에 조건식을 또 넣어준 모습이었습니다.
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
행렬의 덧셈 (연습문제 Lv1 /JS) (0) | 2021.12.01 |
---|---|
직사각형 별찍기 (연습문제 Lv1 / JS) (0) | 2021.12.01 |
체육복 (탐욕법 Lv1/JS) (0) | 2021.11.21 |
K번째수 (정렬 Lv1 / JS) (0) | 2021.11.19 |
완주하지 못한 선수(해시 Lv1 / JS) (0) | 2021.11.19 |