문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
str은 길이 1 이상인 문자열입니다.
s | return |
---|---|
"Zbcdefg" | "gfedcbZ" |
function solution(s) {
return s.split('').sort().reverse().join('') ;
}
문자를 뒤집은 다음 오름차순으로 정리하고, 뒤집은 다음 배열을 문자로 다시 합쳐 줬다. 아래처럼 가독성에도 신경을 좀 더 써야겠다.
function solution(s) {
return s
.split('')
.sort()
.reverse()
.join('') ;
}
function solution(s) {
return s.split('').sort((a, b) => {
if (a > b) return -1;
if (b > a) return 1;
return 0;
}).join('');
}
이 풀이는 뒤집지 않고 sort()
자체에서 내림차순으로 정리해 줬다. sort()
는 인수 a, b를 받았을 때 결과값으로 0보다 작으면 a를 더 낮은 인덱스로 보내 주고, 결과값이 0보다 크면 b를 더 낮은 인덱스로 보내 준다. 0이라면 정렬 순서가 정의되지 않는다.
그래서 a 값이 b보다 크다면 -1을 리턴해 큰쪽인 a를 앞쪽으로 보내준다. b값이 a보다 크다면 1을 리턴해 b를 뒤로 보내준다. 동일할 때는 순서를 정해주지 않는다.