반응형
11726_2xn 타일링
링크
https://www.acmicpc.net/problem/11726
풀이
점화식을 세우기 위해서 그림을 그려보겠습니다.
이렇게 되어 2*n까지 타일을 채우는 방법은 f(n-1) + f(n-2)라는 것을 알 수 있습니다.
점화식은 DP[n] = DP[n-1] + DP[n-2]입니다.
DP[1]과 DP[2]는 미리 구해 놓아야 합니다.
코드로 구현하겠습니다. 주의할 점은 n은 1000까지 -> 배열은 1001로 선언, 출력은 10,007로 나눈 나머지로 해야 합니다.
코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> using namespace std;
int DP[1001] = { 0, 1, 2 };
int f(int n) { if (DP[n]) return DP[n];
return DP[n] = (f(n - 1) % 10007 + f(n - 2) % 10007) % 10007; }
int main() { int n;
cin >> n; cout << f(n) << endl;
return 0; } |
반응형
'PS > BOJ' 카테고리의 다른 글
[백준 BOJ][DP] 9095 1, 2, 3 더하기 (0) | 2018.05.27 |
---|---|
[백준 BOJ][DP] 11727 2xn 타일링 2 (5) | 2018.05.27 |
[백준 BOJ] 1152 단어의 개수 (2) | 2018.05.16 |
[백준 BOJ] 14584 암호 해독 (0) | 2018.05.13 |
[백준 BOJ] 10250 ACM 호텔 (0) | 2018.05.13 |