문제 설명
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
제한 사항
- str은 길이 1 이상인 문자열입니다.
입출력 예
s | return |
"Zbcdefg" | "gfedcbZ" |
풀이 과정
내가 작성한 코드
localeCompare 이용해서 정렬했더니 Zgfedcb가 결과로 나옴
그래서 대문자 / 소문자 나눠서 정렬한 후에
소문자 정렬한거랑 대문자 정렬한 것을 합쳐줌
function solution(s) {
const s_arr = s.split("");
const s_arr_uppercase = s_arr.filter(s => s === s.toUpperCase());
const s_arr_lowercase = s_arr.filter(s => s === s.toLowerCase());
let answer = "";
s_arr_uppercase.sort((x, y) => {
return y.localeCompare(x);
});
s_arr_lowercase.sort((x, y) => {
return y.localeCompare(x);
});
answer = s_arr_lowercase.join("") + s_arr_uppercase.join("");
return answer;
}
다른 사람 코드
sort, reverse 하면 대문자 따로 처리 안해줘도 알맞은 결과 값 나옴
function solution(s) {
const answer = s.split("").sort().reverse().join("");
return answer;
}
혼자 너무 복잡하게 생각하고 빙빙 돌아가는 느낌..^^ㅠ
'알고리즘 > 프로그래머스 문제풀이' 카테고리의 다른 글
[프로그래머스 LEVEL1] 서울에서 김서방 찾기 / Javascript (0) | 2022.02.05 |
---|---|
[프로그래머스 LEVEL1] 문자열 다루기 기본 / Javascript (0) | 2022.02.05 |
[프로그래머스 LEVEL1] 문자열 내 P와 Y의 개수 (0) | 2022.02.05 |
[프로그래머스 LEVEL 1] 문자열 내 마음대로 정렬하기 / Javascript (0) | 2022.02.05 |
[프로그래머스 LEVEL1] 두 정수 사이의 합 / Javascript (0) | 2022.02.05 |