백준/동적계획법

[백준] C++ 11726(2×n 타일링)

2zreal 2024. 7. 4. 17:03

 

#include <iostream>

using namespace std;

int DP[1001];

int main(void)
{
	int a=0;
	cin>>a;
	
	DP[1]=1;
	DP[2]=2;
	
	for(int i=3; i<=1000; i++)
	{
		DP[i]=(DP[i-1]+DP[i-2])%10007;
	}
	
	cout<<DP[a];
	
	return 0;
}

이 문제도 굉장히 간단한 문제이다.

그림으로 설명하겠다.

가로의 길이가 1인 블럭과 2인 블럭이 있기 때문에 이전거와 이이전거만 확인하면 된다.

오른쪽에 블럭을 추가한다고 상상해 보자!!

DP[i]=(DP[i-1]+DP[i-2])%10007

'백준 > 동적계획법' 카테고리의 다른 글

[백준] C++ 11052(카드 구매하기)  (0) 2024.07.07
[백준] C++ 2293(동전)  (1) 2024.07.07
[백준] C++ 1003(피보나치 함수)  (0) 2024.07.04
[백준] C++ 9095(1,2,3 더하기)  (0) 2024.07.04
C++ 2579번(계단 오르기)  (0) 2024.06.25