๐Algorithm
๋ฐฑ์ค[node.js] > 9461๋ฒ ํ๋๋ฐ ์์ด
devWarrior
2025. 1. 5. 12:07
๋ฌธ์ ๋งํฌ
https://www.acmicpc.net/problem/9461
๋ฌธ์ ํ์ด
dp[i] = dp[i - 1] + dp[i - 5]; ๋ผ๋ ์ ํ์๋ง ๋์ถํ๋ฉด ์ฝ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์ด๋ค.
( i ๋ฒ์งธ ์ผ๊ฐํ์ ํ๋ณ์ ๊ธธ์ด = i-1๋ฒ์งธ ๋ณ์ ๊ธธ์ด + i-5๋ฒ์งธ ๋ณ์ ๊ธธ์ด )
let fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
const testCaseCount = Number(input.shift());
input = input.map((n) => Number(n));
let dp = [0, 1, 1, 1, 2, 2, 3, 4, 5, 7, 9]; // P(1) P(2) P(3) P(4) p(5) p(6) p(7) p(8) p(9) p(10)
let max = Math.max(...input);
for (let i = 11; i <= max; ++i) {
dp[i] = dp[i - 1] + dp[i - 5];
}
input.forEach((N) => {
console.log(dp[N]);
});