정수의 각 자릿수에서 큰 것부터 작은 순으로 정렬해야 하는데
정수 한 덩어리로 큰 것과 작은 것을 비교할려면
반복문을 사용해서 나누기와 나머지 연산을 수행한 후
하나하나 비교를 해야하는 번거로움이 발생한다.
그래서 먼저 문자열로 변환하고, split('')로 문자열 덩어리를 문자 배열로 변환해주었다.
그 후 sort((a,b) => b-a)함수로 내림차순 정렬을 수행했다.
(
원래는 내림차순 정렬 이전에 map(Number)로 문자들을 정수로 변환시켜 주고 sort()를
시켜주었는데, map(Number)을 지운 배열의 문자들을 기준으로도 내림차순 정렬이 가능했다.
)
그 후 reduce((acc, cur)=> acc + cur)로 문자들을 문자열로 붙여주고
붙인 문자열을 parseInt()로 정수로 변환해서 반환했다.
제출한 코드 :
function solution(n)
{
return parseInt(n.toString().split('').sort((a, b)=> b-a).reduce((acc, cur)=> acc + cur))
}
'문제 풀기 > JavaScripts' 카테고리의 다른 글
문제 21. 하샤드 수(난이도 2) (0) | 2024.07.16 |
---|---|
문제 19. 정수 제곱근 판별(난이도 1) (0) | 2024.07.15 |
문제 18. 문자열을 정수로 바꾸기(난이도 1) (0) | 2024.07.15 |
문제 17. 자연수 뒤집어 배열로(난이도 7)(split, reverse, map(Number)) (0) | 2024.07.11 |
문제 16. x만큼 간격이 있는 n개의 숫자(난이도 6) (0) | 2024.07.11 |