코딩 테스트
[프로그래머스 Level 1] 문자열 내림차순으로 배치하기
y_flm
2025. 4. 2. 17:47
반응형
문제:
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
문제 풀어보기: https://school.programmers.co.kr/learn/courses/30/lessons/12917
풀이보기
더보기
function solution(s) {
let lowercase = [];
let uppercase = [];
for (let char of s) {
char === char.toLowerCase() ?
lowercase.push(char) : uppercase.push(char);
}
lowercase.sort((a, b) => b.localeCompare(a));
uppercase.sort((a, b) => b.localeCompare(a));
return lowercase.join('') + uppercase.join('');
}
처음 풀이는 단순히 소문자와 대문자를 나누어서 각 배열에 push 했고,
그 뒤에 각 배열을 정렬해서 붙이는 방식으로 구현했다.
근데 다른 사람풀이를 보며 애초에 sort가 알파벳을 정렬해주는 기능이 있는 줄 처음 알았다 ㅎㅎ;
function solution(s) {
return s.split("").sort().reverse().join("");
}
이렇게 하면 한 줄로 간편하게 문제를 풀 수 있다.
먼저 split을 통해 문자열을 배열로 변환하고, sort를 통해 알파벳을 오름차순으로 정렬한다.
게다가 sort로 대문자도 알아서 정렬이 된다는 사실도 처음 알았다 ㅎ ..
이렇게 정렬한 배열을 reverse로 뒤집어주면 내림차순이 될테고 마지막으로 join을 통해 다시 문자열로 변환해주면 끝!
반응형