[JavaScript]숫자 쪼개기

길현민·2023년 2월 18일
0

JS코딩테스트

목록 보기
6/7

숫자가 인자로 주어졌을 때, 다음과 같은 조건을 만족하는 함수를 작성해 주세요!

📌 주어진 정수 각 자릿수의 "숫자"를 요소로 가지는 배열을 반환해야 합니다.
📌 반환된 배열의 요소는 "문자열"이 아닌 "숫자"가 되어야 합니다.

const n1 = 370;
const n2 = 1357;
const n3 = 33333;

function splitNumber(num) {
  let nums = [];
  do {
    nums.unshift(num % 10);
    num = Math.floor(num / 10);
  } while (num > 0);
  return nums;
}

const result1 = splitNumber(n1); // [3, 7, 0]를 반환해야 합니다.
const result2 = splitNumber(n2); // [1, 3, 5, 7]를 반환해야 합니다.
const result3 = splitNumber(n3); // [3, 3, 3, 3, 3]를 반환해야 합니다.

if (
  checkResult(result1, [3, 7, 0]) &&
  checkResult(result2, [1, 3, 5, 7]) &&
  checkResult(result3, [3, 3, 3, 3, 3])
) {
  alert("🎉");
}

사실 별거 아니지만 조건이 정렬 관련 메소드(Array.prototype.sort) 혹은 정규 표현식 관련 메소드(String.prototype.replace, String.prototype.match 등)은 당분간 사용하지 않는거라 상당히 고생한 문제입니다.
변수를 문자열로 변환후 스프레드 연산자로 배열로 바꿔서 하는 방향을 초반에 잡았지만 [...'num'] 관련 메소드를 사용하지 않고는 숫자로 변환하는 방법을 못찾아서 방향성을 한번더 바꿔봐야했습니다.
자주쓰이는 push또한 순서가 반대로 나오기 때문에 처음 써보는 unshift를 사용했습니다.

🐔참고문헌

·바닐라코딩 사이트

https://book.vanillacoding.co/starter-kit/step-2/javascript-part-3/undefined-4

profile
맛집탐방러

0개의 댓글