문제 분석
https://www.acmicpc.net/problem/9095
해당 문제도 DP로 해결해야 한다. DP의 경우에는 정말 어려운 문제가 아닌 이상, 문제 분석과 해결 방법은 생략하겠다.
코드
#include <iostream>
using namespace std;
int arr[12] = {0,1,2,4,0,0,0,0,0,0,0,0};
int main() {
int t, n;
cin >> t;
while(t--) {
cin >> n;
if(n<=3) {
cout << arr[n] << "\n";
continue;
}
for(int i=4;i<=n;i++) {
arr[i] = arr[i-1] + arr[i-2] + arr[i-3];
}
cout << arr[n] << "\n";
}
}
점화식
arr[i] = arr[i-1] + arr[i-2] + arr[i-3]
'BOJ > DP' 카테고리의 다른 글
[C++] BOJ 9251 / DP (LCS 최장 공통 부분 수열) (0) | 2021.08.10 |
---|---|
[C++] BOJ 2579 / DP (계단 오르기, 점화식 2차원 배열 접근) (0) | 2021.08.10 |
[C++] BOJ 1463 / DP (1로 만들기, 점화식 첫 도전) (0) | 2021.08.10 |