11726 2×n 타일링

220503

알고리즘: DP

const fs = require('fs');
const filePath = process.platform === 'linux' ? 'dev/stdin' : '../input.txt';
const input = +fs.readFileSync(filePath).toString('utf-8');
const dp = [];
dp[1] = 1;
dp[2] = 2;
for (let i = 3; i <= input; i++) {
  dp[i] = (dp[i - 1] + dp[i - 2]) % 10007;
}
console.log(dp[input]);

참고

221022

// 메모리: 9664kb
// 시간: 188ms

const n = +require('fs').readFileSync('./input.txt');
const memo = { 1: 1, 2: 2 };

for (let i = 3; i <= n; i++) {
  memo[i] = (memo[i - 1] + memo[i - 2]) % 10007;
}

console.log(memo[n]);