
const fs = require('fs');
const path = process.platform === 'linux' ? '/dev/stdin' : 'input.txt';
const n = Number(fs.readFileSync(path));
const dp = Array(91).fill(0n);
dp[1] = 1n;
for (let i = 2; i <= n; i++) {
dp[i] = dp[i - 1] + dp[i - 2];
}
console.log(dp[n].toString());
⏰ 소요한 시간 : -
피보나치 수는 전항과 전전항을 더하면 현재 항이 나오는 수열이다.
문제에서 n의 범위가 90이하라고 했으므로 90칸짜리 배열을 만들어 dp배열을 채워주면 된다.
이 때 피보나치수 90의 경우 값이 무수히 커질 수 있으므로, 초기값을 BigInt형태로 넣어준 뒤 계산하면 된다.