문제 정의

Base Cases

점화식

구현

const run = (numbers: number[]) => {
  const result = [];
  const maxNumber = Math.max(...numbers);
  const dp = new Array(maxNumber + 1).fill(0);

  dp[0] = 1;
  dp[1] = 1;

  for (let i = 2; i <= maxNumber; i++) {
    dp[i] = (dp[i - 1] + dp[i - 2]) % 10007;
  }

  for (const number of numbers) {
    result.push(dp[number]);
  }

  return result.join('\\n');
};

console.log(run(input));