흙금이네 블로그

[BOJ] 2748 - 피보나치 수 2 (Python, JavaScript) 본문

알고리즘

[BOJ] 2748 - 피보나치 수 2 (Python, JavaScript)

흙금 2023. 2. 20. 13:27

 

 

아이디어

 

동적 계획법으로 피보나치 수를 구해 나간다.

 

 

풀이 #1 (Python)

 

피보나치 수를 저장하기 위해 0으로 채워진 N+1 크기의 리스트 dp를 생성하고, dp[1]의 값으로 1을 할당한다.

for문에서 2부터 N까지의 수에 대해 앞의 두 피보나치 수의 합으로 피보나치 수를 계산하고, dp에 저장한다.

 

N = int(input())
dp = [0]*(N+1)
dp[1] = 1
for i in range(2, N+1):
    dp[i] = dp[i-1]+dp[i-2]
print(dp[N])

 

 

 

풀이 #2 (JavaScript)

 

풀이 #1과 마찬가지 방식으로 동작하며, 입력에 대한 결과값이 number 자료형의 범위를 벗어나므로 BigInt를 사용한다.

 

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split('\n');

const N = +input[0];
let dp = Array(N+1).fill(BigInt(0));
dp[1] = BigInt(1);
for (let i=2; i<=N; i++) dp[i] = dp[i-1]+dp[i-2];
console.log(String(dp[N]));

 

Comments