문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
s | result |
---|---|
"Zbcdefg" | "gfedcbZ" |
function solution(s) {
var answer = '';
s = s.split("");
s.sort(function(a,b) {
if(a < b) return 1;
if(a > b) return -1;
if(a === b) return 0;
})
answer = s.join("");
return answer;
}
문제를 보고 코드를 처음 짰을 때는 단순히 s를 ""를 기준으로 배열로 쪼개고, sort()함수를 사용해 내림차순으로 정렬해야겠다는 생각을 가지고 코드를 짰다. 그래서 위와 같은 코드가 나왔는데, sort함수를 사용해 오름차순으로 정렬한다면 파라미터로 비교하지 않아도 된다. 따라서 reverse로 배열을 뒤집은 다음 sort()함수를 사용하여 더 깔끔한 코드가 되었다.
function solution(s) {
return s
.split("")
.sort()
.reverse()
.join("");
}