문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
- str은 길이 1 이상인 문자열입니다.
const solution = (s) =>
s
.split("")
.sort((a, b) => b.charCodeAt(0) - a.charCodeAt(0))
.join("");split()과join()을 활용하여 메소드 체이닝으로 최종 결과물을 반환한다.
split("")메소드로 문자열을 문자 단위로 나눠 배열에 넣는다.sort()메소드로 UTF-16 코드의 역순으로 정렬한다.- 콜백 함수에서 매개변수로 받은
a, b를 코드로 변환한 후, b 코드에서 a 코드를 뺀 값을 반환한다. - b 코드가 클 경우 양수값이 나오므로 역순 정렬된다.
- 콜백 함수에서 매개변수로 받은
join("")메소드로 정렬된 배열을 다시 문자열로 합친다.
- 자바스크립트 배열에
reverse()메소드가 존재하는 것을 깜빡했다. - 굳이
sort()에서 코드 변환 과정을 거침으로 인해 실행속도가 느려졌다고 생각한다.
const solution = (s) => s.split("").sort().reverse().join("");- 정렬 부분에서
sort()메소드를 콜백 없이 사용한다. reverse()메소드를 통해 오름차순 정렬을 내림차순으로 바꾼다.
- 의외로
Array에reverse()메소드가 있다는 걸 깜빡한다. 간혹 요긴하게 쓰일 수 있으니 기억하자.