티스토리 뷰

문제링크 : https://www.acmicpc.net/problem/2748

 

2748번: 피보나치 수 2

피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가

www.acmicpc.net

#include <bits/stdc++.h> 
using namespace std;

int n;
long long dp[90]; //범위 초과로 long long 자료형 사용

int main()
{
	cin >> n;
	dp[0] = 0;
	dp[1] = 1;
	for (int i = 2; i <= n; i++)
	{
		dp[i] = dp[i - 1] + dp[i - 2];    //일반 재귀는 시간초과로 인해 dp 사용
	}
	cout << dp[n];
}

일반적인 재귀방법을 통해 풀면 시간초과가 나므로 dp를 사용한다.

 

'Problem Solving > 백준' 카테고리의 다른 글

[백준 3135번] 라디오 (C++)  (0) 2023.02.05
[백준 13706번] 제곱근 (python)  (0) 2023.02.05
[백준 1032번] 명령 프롬포트 (C++)  (0) 2023.02.05
[백준 9084번] 동전 (C++)  (0) 2023.02.05
[백준 12919번] A와 B 2 (C++)  (0) 2023.02.05
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함