짱아의 개발 기록장

백준 10870번. 피보나치 수 5(c++) / dp 본문

Algorithm/Baekjoon

백준 10870번. 피보나치 수 5(c++) / dp

jungahshin 2020. 8. 24. 22:24
반응형

피보나치는 dp 알고리즘을 사용해서 풀 수 있는 전형적인 문제 중 하나이다.

피보나치 공식인 f(n) = f(n-1)+f(n-2) 를 사용해서 구현했다.

 

 

코드 첨부

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
29
30
31
// 피보나치 수 5
#include <iostream>
#include <cstring>
 
using namespace std;
 
int n;
int dp[22= {0, };
 
int go(int N)
{
    if(dp[N]!=-1){
        return dp[N];
    }
    
    dp[N] = go(N-1)+go(N-2);
    return dp[N];
}
 
int main()
{
    memset(dp, -1sizeof(dp));
    cin>>n;
    dp[0= 0;
    dp[1= 1;
    if(n>=2){
        dp[n] = go(n-1)+go(n-2);
    }
    
    cout<<dp[n]<<"\n";
}
cs

 

문제 첨부

https://www.acmicpc.net/problem/10870

 

10870번: 피보나치 수 5

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

www.acmicpc.net

반응형
Comments