본문 바로가기

하루하나코딩

백준 2133 : 타일채우기

코드

#include <iostream>

using namespace std;

int dp[31];

int main(){
	int n;
	cin >> n;
	
	dp[0] = 1;
	dp[1] = 0;
	dp[2] = 3;
	
	if(n%2 == 1) cout << "0";
	else{
		for(int i = 4; i <= n; i = i+2){
			dp[i] = 3*dp[i-2];
			for(int j = i-4; j >=0 ; j = j - 2){
				dp[i] += 2* dp[j];
			}
		}
		cout << dp[n];
	}
	
	
	return 0;
}

알게된 점

참.. 이게 수학문젠지 알고리즘문제인지..

점화식을 생각하는게 참 어렵습니다.

dp는 점화식 생각이 참 중요한 문제 같습니다..

'하루하나코딩' 카테고리의 다른 글

백준 1520 : 내리막 길  (0) 2023.01.17
백준 11047 : 동전 0 c++  (0) 2023.01.13
백준 2294 : 동전 2 c++  (0) 2023.01.13
백준 9461 : 파도반 수열 c++  (0) 2023.01.12
백준 2293 : 동전 1 c++  (0) 2023.01.11