<문제 설명>
문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.
s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.
<제한 사항>
str은 길이 1 이상인 문자열입니다.
<입출력 예>
s | return |
"Zbcdefg" | "gfedcbZ" |
<문제 풀이>
function solution(s) {
let big = []
let small = []
for(let i = 0; i < s.length; i++){
if(s[i]===s[i].toUpperCase()){
big.push(s[i])
}else small.push(s[i])
}small.sort((a,b)=>b.localeCompare(a))
big.sort((a,b)=>b.localeCompare(a))
let answer = small.join('')+big.join('')
return answer
}
대문자를 big, 나머지(소문자)를 small에 담고,
거꾸로 정렬하는 방법으로 localeCompare함수를 사용했다.
그리고 배열을 join으로 문자열로 바꿔주었고, 둘을 더했다.
<다른 풀이>
function solution(s) {
return s
.split("")
.sort()
.reverse()
.join("");
}
나도 막힘없이 바로 풀긴 했지만, 아주 간단한 것 같아서 가져왔다.
<코멘트>
프로그래머스 0단계를 다 마무리하고 이제 1단계를 쉬운문제부터 풀고 있는데,
0단계 끝내갈 때 내 수준에서는 어려워서 1시간넘게 고생한 문제들이 꽤 있는데,
1단계를 시작하기 전에 두려움이 있었다.
그런데, 1단계에서 쉬운 문제부터 푸니까 너무 쉬워서 막힘없이 통과되고 있다.
성장했다고 조금은 자존감을 높혀가며... 더욱 정진해야겠다!
728x90
'개발 > 코딩테스트' 카테고리의 다른 글
[프로그래머스 | JavaScript] 약수의 개수와 덧셈 (0) | 2023.04.24 |
---|---|
[프로그래머스 | JavaScript] n의 배수 (0) | 2023.04.23 |
[프로그래머스 | JavaScript] 옹알이 (1) (0) | 2023.04.16 |
[프로그래머스 | JavaScript] 등수 매기기 (0) | 2023.04.15 |
[프로그래머스 | JavaScript] 겹치는 선분의 길이 (0) | 2023.04.14 |