Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

자바스크립트에서 숫자의 자릿수를 내림차순으로 정렬해 가장 큰 수 만들기

문제 설명

숫자 n을 입력받는 자바스크립트 함수를 작성해야 합니다. 이 함수는 입력받은 숫자의 각 자릿수를 내림차순으로 재배열하여, 만들 수 있는 가장 큰 숫자를 반환해야 합니다.

해결 접근 방법

이 문제는 다음과 같은 단계로 해결할 수 있습니다.

  1. 숫자를 문자열로 변환합니다.
  2. 문자열을 한 글자씩 분리하여 배열로 만듭니다.
  3. 배열을 내림차순으로 정렬합니다.
  4. 정렬된 배열을 다시 하나의 문자열로 합친 뒤 숫자로 변환하여 반환합니다.

예제 코드

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()로 변환해 최종 결과를 반환합니다.