본문 바로가기

Coding Test/Programmers

[프로그래머스 코딩테스트 JavaScript] Level 1-21 정수 내림차순으로 배치하기

반응형

 

문제 설명

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

제한 조건

  • n은 1이상 8000000000 이하인 자연수입니다.

입출력 예

nreturn

118372

 

 

 

나의 답 

 

각 수를 배열로 

['5','4','3','2','1'] 만들고 sort로 정렬 한 뒤 엄청 고민했다. 

 

 

 

reduce를 사용해서 문자열을 그대로 붙여주고 맨 앞에 + 로 숫자로 바꿔줫다. 

 

 

 

 

 

다른 분들의 풀이

 

문제 엄청 고민하면서 split처럼 무언가로 배열을 합치는 기능이 없나 생각했는데 요기 쓰인 .join() 이 그 기능을 하는걸 알게되었다. 

 

 

숫자를 요소 하나하나 string 배열로 담는 2가지 방법 

123+''.split('') == Array.from(123+'') 
console.log((123+'').split(''), ' = ', Array.from(123+''))

 

<- 참고 + join('') 기능 추가해서 다시 만들어 보기 

function solution(n) {
    return +(n+'').split('').sort().reverse().join('')
}

요렇게 더 깔끔하게도 가능! 

반응형