본문 바로가기
알고리즘 & 자료구조/백준

백준 2133

by 신재권 2021. 9. 13.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Main2133 {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());
		int[] D = new int[N+1];
		D[0] = 1;
		
		//점화식 
		//3 x N 타일링 문제는 경우의수가 아주 많다.
		//세로의 길이가 2를 차지하는 경우의 수는 3개
		//세로의 길이가 4를 차지하는 경우의 수부터는 2개이다.
		//즉 마지막에 올 수 있는 경우의 수를 모두 더해주어야 한다.
		//D[i] = 3 * D[i-2] + 2 * D[i-4] + 2 * D[i-6] + ... + 2 * D[0]
		for(int i=2; i<=N; i++){
			D[i] = 3*D[i-2];
			for(int j=i-4; j>=0; j-=2){
				D[i] += 2* D[j];
			}
		}
		System.out.println(D[N]);
		

	}

}

'알고리즘 & 자료구조 > 백준' 카테고리의 다른 글

백준 17404  (0) 2021.09.15
백준 1309  (0) 2021.09.13
백준 13398  (0) 2021.09.09
백준 11055  (0) 2021.09.09
백준 1932  (0) 2021.09.08