본문 바로가기
IT/BOJ

백준(BOJ) 11726 2*n 타일링 **

by 빨강자몽 2018. 6. 1.

DP 문제입니다.

#include<iostream>
#include<string.h>
#include <algorithm>
#include<vector>
using namespace std;

int num, cur = 2;
unsigned long long dp[1001];

int main(void)
{
	scanf("%d", &num);
	memset(dp, 0, num + 1);
	dp[0] = 1;
	dp[1] = 2;

		while (cur < num)
		{
			dp[cur + 1] = (dp[cur + 1] + dp[cur] + 1)%10007;
			dp[cur + 2] = (dp[cur + 2] + dp[cur] + 1)%10007;
			cur++;
		}
		if (num == 1)
			printf("1\n");
		else
			printf("%llu\n", (dp[cur] + 2)%10007);
	return 0;
}