하...
이건 기존 2*n랑 다르게
4부터 짝수일 때마다 +2가지 씩 추가되는 건데..
점화식 너무 어렵고...ㅠㅠ 다른 사람 코드보고 겨우 풀었는데
완벽하게 이해도 안됨.. 스..트..레....스........
고딩때 포기한 점화식
아직까지 괴롭히는구나 ㅠㅠ휴
수학..수학..
수학/코딩 논리적으로 사고해서 일반화된 식을 뽑아내야하는데..
너무 어렵다 ㅠㅠ
다시봐야지...
// BJ 2133 타일채우기
// DP
#include <iostream>
using namespace std;
int arr[31];
int dp(int x) {
if (x == 0) return 1;
if (x == 1) return 0;
if (x == 2) return 3;
if (arr[x] != 0) return arr[x];
int result = 3 * dp(x - 2); //원래 점화식
// 4부터~짝수마다 원래 점화식에서 + 2 씩 추가되어서 나옴
for (int i = 3; i <= x; i++) {
if (i % 2 == 0) {
result += 2 * dp(x - i);
}
}
return arr[x] = result;
}
int main() {
int N;
cin >> N;
cout << dp(N);
}
'[알고리즘] 문제풀이 연습' 카테고리의 다른 글
[0706 복습] 알골 연습문제 90제 : 6~10번 (0) | 2019.07.06 |
---|---|
[0705 복습] 백준2164 + 연습문제 5개 (0) | 2019.07.05 |
[DP] 백준 11726, 11727 - 2xn 타일링 (0) | 2019.07.04 |
백준 10219 - meats on the grill : reverse함수 등 (0) | 2019.07.04 |
3) 알고리즘 : 정렬 - 삽입정렬(Insertion Sort) (0) | 2019.07.03 |