관리 메뉴

기억을 위한 기록들

[백준 11727: 2 X n 타일링2] - C++ 본문

Coding Test - cpp/DP

[백준 11727: 2 X n 타일링2] - C++

에드윈H 2021. 2. 19. 14:55

www.acmicpc.net/problem/11727

 

11727번: 2×n 타일링 2

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

www.acmicpc.net

#include <iostream>
using namespace std;

int main() {

	int dp[1001] = { 0 };
	dp[1] = 1;
	dp[2] = 3;
	dp[3] = 5; 
	dp[4] = 11;

	int N;
	cin >> N;
	for (int i = 5; i <= N; i++) 
	{
		dp[i] = (dp[i - 1] + dp[i - 2] * 2) % 10007;
	}
	printf("%d\n", dp[N]);
}