반응형

www.acmicpc.net/problem/2133

 

2133번: 타일 채우기

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

www.acmicpc.net

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// https://kosaf04pyh.tistory.com/236
#include <iostream>
using namespace std;
int n, dp[31];
int main() {
    cin >> n;
    if (n % 2 == 1) {
        cout << 0;
        exit(0);
    }
    dp[0= 1;
    dp[2= 3;
 
    for (int i = 4; i <= n; i++) {
        // 1. 오른쪽 2개 고정
        dp[i] = dp[i - 2* 3;
        // 2. 오른쪽에 4개, 6개, ..., n개 고정    
        for (int j = 4; i >= j; j = j + 2
            dp[i] += dp[i - j] * 2;
    }
    cout << dp[n];
}
cs
반응형

'백준 > DP' 카테고리의 다른 글

백준 11054  (0) 2021.02.19
백준 13398 [복습 필수]  (0) 2021.02.18
백준 11055  (0) 2021.02.17
백준 2225  (0) 2021.02.17
백준 1699  (0) 2021.02.17

+ Recent posts