Algorithm/BOJ

[백준] 9507번 Generations of Tribbles

면빈이 2020. 1. 10. 21:43

[적용한 알고리즘]

DP

 

[아이디어]

재귀를 이용하는 dp의 기본형이다.  long long!

<코드>

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

long long dp[68];
long long Koong(int n){
    long long &ret = dp[n];

    if (n < 2) return 1;
    if (n == 2) return 2;
    if (n == 3) return 4;
    if (ret != -1) return ret;
    
    return ret = Koong(n - 1) + Koong(n - 2) + Koong(n - 3) + Koong(n - 4);
}

int main(){
    int t;
    scanf("%d", &t);

    while (t--){
        int N;
        scanf("%d", &N);
        memset(dp, -1, sizeof(dp));
        printf("%lld\n", Koong(N));
    }

    return 0;
}