문제 설명
숫자 n을 입력받는 자바스크립트 함수를 작성해야 합니다. 이 함수는 입력받은 숫자의 각 자릿수를 내림차순으로 재배열하여, 만들 수 있는 가장 큰 숫자를 반환해야 합니다.
해결 접근 방법
이 문제는 다음과 같은 단계로 해결할 수 있습니다.
- 숫자를 문자열로 변환합니다.
- 문자열을 한 글자씩 분리하여 배열로 만듭니다.
- 배열을 내림차순으로 정렬합니다.
- 정렬된 배열을 다시 하나의 문자열로 합친 뒤 숫자로 변환하여 반환합니다.
예제 코드
const num = 5423267;
const arrangeInDescending = (num = 1) => {
const str = String(num);
const arr = str.split('');
arr.sort((a, b) => {
return +b - +a;
});
const newStr = arr.join('');
const res = Number(newStr);
return res;
};
console.log(arrangeInDescending(num));
출력 결과
7654322
코드 동작 원리
String(num)으로 숫자를 문자열로 변환한 후, split('')을 사용해 각 자릿수를 개별 배열 요소로 분리합니다. 이어서 sort() 메서드에 비교 함수 (a, b) => +b - +a를 전달하면 각 자릿수가 큰 값부터 작은 값 순으로 정렬됩니다. 여기서 단항 연산자 +를 사용해 문자열을 숫자로 변환하여 올바르게 비교할 수 있습니다. 마지막으로 join('')으로 배열을 하나의 문자열로 합치고, Number()로 변환해 최종 결과를 반환합니다.