알고리즘

[백준/DP/C++] 11727번 2xn 타일링 2

데메즈 2022. 12. 22. 19:39
728x90
반응형

https://www.acmicpc.net/problem/11727

11727번: 2×n 타일링 2

2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다.

www.acmicpc.net

위 그림처럼 점화식은 dp(n) = dp(n-1) + 2 X dp(n-2)가 된다

#include <bits/stdc++.h>

using namespace std;
int n;
int dp[1001];

int main(void) {
    cin >> n;

    dp[1] = 1;
    dp[2] = 3;

    for(int i=3; i<n; i++){
        dp[i] = (dp[i-1] + 2*dp[i-2])%10007;
    }
    cout << dp[n];

    return 0;
}



참고
https://jaemin8852.tistory.com/158

728x90
반응형