문제 설명
- 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한 사항
- str은 길이 1 이상인 문자열입니다.
입출력 예
s | return |
"Zbcdefg" | "gfedcbZ" |
나만의 풀이
문제를 보는 순간 메서드로 spli(''), sort(), join('')을 이용해야 겠다는 생각을 했다. 문제는 sort()를 어떻게 구성하냐 였다. 우선 규칙이 장대하게 설명이 되어 있지만 그냥 내림차순 정렬이랑 다를 게 없다. (아스키코드를 확인하면 알 수 있음.)
처음에는
function solution(s) {
return s.split('').sort((a, b) => b.codePointAt(0) - a.codePointAt(0) ).join('');
}
그런데 비교연산 하면 구지 codePointAt을 사용할 필요가 없었다. 그래서 코드를 변경해 보았다. (위에 것이 런타임도 더 걸림.)
function solution(s) {
return s.split('').sort((a, b) => a < b ? 1 : -1).join('');
}
'프로그래머스 JS LV1' 카테고리의 다른 글
LV1 14 문자열 다루기 기본 (0) | 2022.12.16 |
---|---|
LV1 13 약수의 개수와 덧셈 (0) | 2022.12.16 |
LV1 11 내적 (0) | 2022.12.15 |
LV1 11 수박수박수박수박수박수? (0) | 2022.12.14 |
LV1 10 가운데 글자 가져오기 (0) | 2022.12.14 |