문제 풀기/JavaScripts

문제 20. (중요)정수 내림차순으로 배치하기(난이도 5)(정수 sort 함수)

kagan-draca 2024. 7. 15. 15:31

 

정수의 각 자릿수에서 큰 것부터 작은 순으로 정렬해야 하는데

정수 한 덩어리로 큰 것과 작은 것을 비교할려면

반복문을 사용해서 나누기와 나머지 연산을 수행한 후

하나하나 비교를 해야하는 번거로움이 발생한다.

 

그래서 먼저 문자열로 변환하고, 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))
}