문제
백준 10870번
10870번: 피보나치 수 5
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가
www.acmicpc.net
코드
#include<iostream>
using namespace std;
int pibo[21];
int n;
int main() {
pibo[0] = 0;
pibo[1] = 1;
cin >> n;
if (n == 0) cout << pibo[0];
else if (n == 1) cout << pibo[1];
else {
for (int i = 2; i <= n; i++) {
pibo[i] = pibo[i - 1] + pibo[i - 2];
}
cout << pibo[n];
}
}
풀이방법
동적계획법을 이용해 피보나치 수를 배열 pibo에 저장해준다.
고민과정
재귀함수랑 DP 둘다 가능하겠다.
'algorithm > Dynamic Programming' 카테고리의 다른 글
[C++] BOJ 1010 다리 놓기 (0) | 2021.05.01 |
---|---|
[C++] BOJ 13301 타일 장식물 (0) | 2021.05.01 |
[C++] BOJ 9625 RIJEČI (BABBA) (0) | 2021.05.01 |
[C++] BOJ 2748 (0) | 2021.03.27 |
[C++] BOJ 2839 ŠEĆER 설탕배달 (0) | 2021.03.27 |