728x90
문제
https://programmers.co.kr/learn/courses/30/lessons/12917?language=javascript
코드
function solution(s) {
const upper = s.split("").filter((i) => (i == i.toUpperCase())).join("");
const lower = s.split("").filter((i) => (i == i.toLowerCase())).join("");
return (lower.split("").sort().reverse().join("")) + (upper.split("").sort().reverse().join(""));
}
후기
- 문제 이해 : 문자열 s를 내림차순으로 배치하는데 대문자 < 소문자로 간주한다
- 소문자와 대문자를 나누어서 각각 sort를 진행하고 최종적으로 합치면 되겠다는 생각을 하였다
- 문자열 s에서 소문자와 대문자를 나누기 위해서 대소문자를 체크하는 방법을 알아야 했는데, filter함수를 통해 (i == i.toUpperCase()) 를 통해 여부를 알 수 있었다
- 하지만... 내가 아주 큰 것을 놓치고 있었다. 원래 대문자는 소문자보다 크다고 간주되니 대소문자를 나눌필요없이 문자열 s를 바로 sort().reverse() 적용해주면 한 번에 해결될 문제였다.. ^^
- 즉, return s.split("").sort().reverse().join(""); 이 한줄로 해결되는 문제였다고 한다
'알고리즘 > Programmers' 카테고리의 다른 글
[Programmers] 하샤드 수 / JavaScript (0) | 2022.01.20 |
---|---|
[Programmers] 핸드폰 번호 가리기 / JavaScript (0) | 2022.01.20 |
[Programmers] 시저 암호 / JavaScript (0) | 2022.01.20 |
[Programmers] 문자열 내 p와 y의 개수 / JavaScript (0) | 2022.01.20 |
[Programmers] 나누어 떨어지는 숫자 배열 / JavaScript (0) | 2022.01.20 |