문제 설명

https://programmers.co.kr/learn/courses/30/lessons/12899

답안

나의 풀이

const getPermutations = function (arr, selectNumber) {
  const results = [];
  if (selectNumber === 1) return arr;

  arr.forEach((fixed, index, origin) => {
    const permutations = getPermutations(origin, selectNumber - 1);
    const attached = permutations.map((el) => fixed + el);
    results.push(...attached);
  });

  return results;
};

function solution(n) {
  const arr = ["1", "2", "4"];
  const results = [];

  let selectNumber = 1;
  while (results.length <= n) {
    results.push(...getPermutations(arr, selectNumber));
    selectNumber++;
  }

  return results[n - 1];
}

재귀를 이용해서 풀었는데 런타임 에러..ㅠ_ㅠ
새로 풀어봐야겠다ㅠㅠ