2133번: 타일 채우기 (acmicpc.net)

 

2133번: 타일 채우기

3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자.

www.acmicpc.net

 

package com.company;

import java.io.BufferedReader;
import java.io.InputStreamReader;


public class Main {


    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int t = Integer.parseInt(br.readLine());
        int dp[] = new int[t];

        if(t>2 && t%2==0){

            for(int i = 4; i<t; i++){
                dp[i] = 3*dp[i-2];
                for(int j=0;j<i-2;j+=2) { 
                    dp[i]+=dp[j] * 2; 
                }
            }
        }
        else{
            System.out.println(0);
        }

        System.out.println(dp[t]);
    }
}


 

 

 

부족했던 점 

점화식을 찾는데 집중해야 했지만 홀수일 경우 0이되고 그 외의 요소간관계를 찾는데 어려움을 겪었습니다. 

'C++ > DP' 카테고리의 다른 글

DP - 2225(합분해)  (0) 2021.01.16
DP - 9461(파도반 수열)  (0) 2021.01.16
DP-1699(제곱수의 합)  (0) 2021.01.16
DP - 2579_계단 오르기  (0) 2021.01.13
DP- 1912(연속합)  (0) 2021.01.13

+ Recent posts