짱아의 개발 기록장

백준 9461번. 파도반 수열(c++) / DP 본문

Algorithm/Baekjoon

백준 9461번. 파도반 수열(c++) / DP

jungahshin 2021. 4. 4. 16:11
반응형

점화식을 세워서 풀 수 있는 DP문제였다.

DP[n] = DP[n-1]+DP[n-5];

1~5의 DP값은 미리 넣어놓고 이것보다 큰 값의 경우에만 계산해주었다.

 

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
32
33
34
35
// 파도반 수열
#include <iostream>
using namespace std;
 
int n, testcase;
long long dp[101= {0, };
 
void setting()
{
    dp[1= 1;
    dp[2= 1;
    dp[3= 1;
    dp[4= 2;
    dp[5= 2;
}
 
int main()
{
    cin>>testcase;
    setting();
    for(int i=0; i<testcase; i++){
        cin>>n;
 
        if(dp[n]!=0){
            cout<<dp[n]<<"\n";
        }else{
            for(int j=5; j<=n; j++){
                dp[j] = dp[j-1]+dp[j-5];
            }
            cout<<dp[n]<<"\n";            
        }
    }
 
    return 0;
}
cs
반응형
Comments