개발자 되는 법.../코딩테스트...

[JS] 정수 내림차순으로 배치하기

개발_자 2024. 6. 17. 14:03

 

function solution(n) {
    return parseInt((n + '').split('').sort((a, b) => b - a).join(''));
}

 

1. 숫자를 문자열로 변환

n + ''

 

 

숫자 `n`에 빈 문자열을 더하면 암시적으로 `n`이 문자열로 변환됨

"32451"

 

 

 

2. 문자열을 문자 배열로 분리

(n + '').split('')

 

숫자의 문자열 표현을 각 자리 숫자(여전히 문자열 형태)로 이루어진 배열로 분리

['3', '2', '4', '5', '1']

 

3. 배열의 내림차순으로 정렬

.sort((a, b) => b - a)

 

`sort`함수는 기본적으로 문자열을 정렬하므로 숫자 비교를 위해 `(a, b) => b - a`비교 함수를 사용

['5', '4', '3', '2', '1']

 

4. 배열을 다시 문자열로 결합

.join('')

내림차순으로 정렬된 배열을 다시 문자열로 결합

"54321"

 

5. 문자열을 정수로 변환

parseInt(...)

정렬된 문자열을 정수로 변환

54321

 

 

 


 

 

다른 사람 풀이

 

.reverse()

`reverse()`는 배열의 요소 순서 반전