reverseDigitize.js (8kyu 12)

Codewars 알고리즘 풀이


Problem

  • You have to return the digits of this number within an array in reverse order.
    • 주어진 숫자를, 배열 내에서 각각 역순으로 반환한다.


Solution 01

function reverseDigitize(n) {
  let result = [];
  let arr = n.toString().split('');
  
  for (let i = arr.length - 1; i >= 0; i--) {
    result.push(parseInt(arr[i]));
  }
  return result;
}

reverseDigitize(1234);  // [4, 3, 2, 1]
reverseDigitize(4321);  // [1, 2, 3, 4]

toString() 메소드

숫자를 문자열로 변환한다.

split() 메소드

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

push() 메소드

배열의 끝에 새 element를 추가하고, 새로운 길이를 반환한다.

parseInt() 메소드

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


Solution 02

function reverseDigitize(n) {
  return n.toString().split('').map(Number).reverse();
}

reverseDigitize(1234);  // [4, 3, 2, 1]
reverseDigitize(4321);  // [1, 2, 3, 4]

map() 메소드

배열 내 모든 element에 대해, 호출한 함수의 결과를 모아 새 배열로 반환한다.

reverse() 메소드

배열 내 element의 순서를 반전한다.


Solution 03

function reverseDigitize(n) {
  return (n + '').split('').map(Number).reverse();
}

reverseDigitize(1234);  // [4, 3, 2, 1]
reverseDigitize(4321);  // [1, 2, 3, 4]