expandedForm.js

Codewars 알고리즘 풀이


Problem

  • You will be given a number and you will need to return it as a string in Expanded Form.
    • 주어진 숫자를 확장된 형태의 문자열로 반환한다.
  • All numbers will be whole numbers greater than 0.
    • 모든 숫자는 0보다 큰 정수(whole number)이다.



Solution 01

function expandedForm(n) {
  let arr = n.toString().split('').reverse();
  let result = [];
  
  for (let i = 0; i < arr.length; i++) {
    arr[i] == 0 ? result.push() : result.push(arr[i] + '0'.repeat(i));
  }
  return result.reverse().join(' + ');
}

expandedForm(12);     // '10 + 2'
expandedForm(42);     // '40 + 2'
expandedForm(50401);  // '50000 + 400 + 1'

===이 아닌 == 맞음


Solution 02

function expandedForm(n) {
  return n.toString().split('').reverse().map((i, index) => i * Math.pow(10, index)).filter(i => i > 0).reverse().join(' + ');
}

expandedForm(12);     // '10 + 2'
expandedForm(42);     // '40 + 2'
expandedForm(50401);  // '50000 + 400 + 1'