descendingOrder.js (7kyu 10)

Codewars 알고리즘 풀이


Problem

  • Your task is to make a function that can take any non-negative integer as a argument and return it with its digits in descending order.
    • 음수가 아닌 정수(0-9)를 내림차순으로 반환한다.


Solution 01

function descendingOrder(n) {
  return Number(String(n).split('').sort().reverse().join(''));
}

descendingOrder(1234);  // 4321
descendingOrder(5678);  // 8765

Number(): 객체 인수를 숫자로 변환한다. 숫자로 변환할 수 없으면 NaN을 반환한다.

String(): 객체의 값을 문자열로 변환한다.

split(): 문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.

sort(): 배열의 element를 정렬한 후, 그 배열을 반환한다.

reverse(): 배열 내 element의 순서를 반전한다.

join(): 배열의 모든 element를 결합하고, 새 문자열로 반환한다.


Solution 02

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

descendingOrder(1234);  // 4321
descendingOrder(5678);  // 8765

toString(): 숫자를 문자열로 반환한다.


Solution 03

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

descendingOrder(1234);  // 4321
descendingOrder(5678);  // 8765

parseInt(): 문자열을 구문 분석하고, 정수를 반환한다.


Solution 04

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

descendingOrder(1234);  // 4321
descendingOrder(5678);  // 8765