본문 바로가기
Algorithm/Programmers

[Programmers] 정수 내림차순으로 배치하기(JavaScript)

by 백승전 2022. 5. 8.

 

알림

 

본 포스팅은 공부 목적으로 작성된 글이며 상업적 목적으로 절대 사용되지 않았음을 밝힙니다.

 

문제

 

https://programmers.co.kr/learn/courses/30/lessons/12933

 

코딩테스트 연습 - 정수 내림차순으로 배치하기

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

programmers.co.kr

 

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

 

코드

 

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

 

풀이

 

매개변수 n을 toString 함수를 이용해 문자열로 변환해주고, split 함수로 하나씩 나눠줍니다. 이렇게 되면 어떤 숫자가 들어오는 하나씩 분리를 할 수가 있고, 이렇게 하나씩 분리된 숫자를 문제의 의도대로 내림차순으로 정렬 후, join 함수로 하나씩 이어줍니다.

 

여기서 함수 사용 시 어떻게 이어줄지 작성할 수가 있는데, 예를 들어 join('-')로 작성하면 '0-0-0-0'으로 이어질 것이고, join('')으로 작성하면 '0000'이 될 것입니다. 저희는 두 번째 형태로 숫자를 이어줄 것이기 때문에 후자처럼 작성하시면 됩니다.

 

하지만 아직 숫자를 문자열로 변환해준 상태라 바로 리턴을 하면 문자가 출력이 됩니다. 따라서 지금까지의 작업을 변수에 담고, 그 변수를 Number 함수로 숫자로 변환해주든가, 전체를 Number 함수 안에서 작성하시면 됩니다.

댓글