오늘의 알고리즘

[C++] 백준 11726 2xn 타일링

하늘하늘 . 2022. 9. 10. 21:32
#include <iostream>
#include <algorithm>
#include <vector>
 
int N = 0;
int DP[1001] = {};
 
int main()
{
	int N = 0;
	std::cin >> N;
 
	DP[1] = 1;
	DP[2] = 2;
 
	for (int i = 3; i <= N; ++i)
	{
		DP[i] = (DP[i - 1] + DP[i - 2]) % 10007;
	}
 
	std::cout << DP[N];
 
	return 0;
}

l 한개 늘어날 때마다 하나씩 추가하면 된다. (이전 것)

그런데 = 이렇게도 할 수 있기 때문에 두 번째 전 것도 더하면 된다. (전전 것)

ll 도 되지 않느냐 할 수 있는데 그건 이전 것에 l을 추가한 것이 들어가 있다. 그렇기 때문에 이전 과 전전 만 추가하면 된다.