문제링크 : https://www.acmicpc.net/problem/9507
9507번: Generations of Tribbles
꿍은 군대에서 진짜 할짓이 없다. 그래서 꿍만의 피보나치를 만들어보려고 한다. 기존의 피보나치는 너무 단순해서 꿍은 좀더 복잡한 피보나치를 만들어보고자 한다. 그래서 다음과 같은 피보
www.acmicpc.net
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MAX = 987654321;
ll dp[67];
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int T;
cin >> T;
dp[0] = dp[1] = 1; //초기값들
dp[2] = 2;
dp[3] = 4;
for(int i=4; i<=67; i++)
{
dp[i] = dp[i-1] + dp[i-2] + dp[i-3] + dp[i-4]; //점화식
}
while(T--)
{
int n;
cin >> n;
cout << dp[n] <<"\n";
}
return 0;
}
크게 설명할 것이 없는 DP 문제이다.
모든 내용이 문제에 직관적으로 적혀있다.
여기서 주의할 것은 dp 배열에 int 값을 초과하는 값이 들어가므로 long long으로 선언해줘야 한다.
'백준 > 실버' 카테고리의 다른 글
[백준 27515번] 1차원 2048과 쿼리 (C++) (0) | 2023.06.19 |
---|---|
[백준 14916번] 거스름돈 (C++) (0) | 2023.06.18 |
[백준 13700] 완전 범죄 (C++) (0) | 2023.06.15 |
[백준 15966] 군계일학 (C++) (0) | 2023.06.14 |
[백준 25710번] 점수 계산 (C++) (0) | 2023.06.13 |