백준 문제풀이/SILVER
[백준 / BOJ / SILVER 3] 11726 번 : 2xn 타일링
지나가던 개발자
2020. 4. 6. 22:47
반응형
https://www.acmicpc.net/problem/11726
11726번: 2×n 타일링
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.
www.acmicpc.net
문제 접근법
- 점화식을 세워 접근 하면 된다.
- 2xn의 직사각형이 있을 때 마지막에 1x2 타일이 없다고 가정하면 그 직사각형은 가로길이 n-1까지의 경우의 수 라고 볼 수 있다.
- 같은 경우로 2x1 짜리 타일이 없으면 가로길이 n-2까지의 경우의 수 라고 볼 수 있다.
- DP[N](2xn 까지의 경우의 수) = DP[N-1] + DP[N-2]가 성립한다.
아래는 코드입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include <cstdio>
int check[1001];
int main()
{
check[1] = 1;
check[2] = 2;
int a;
scanf("%d", &a);
for (int i = 3; i <= a; i++)
{
check[i] = (check[i - 1] + check[i - 2]) % 10007;
}
printf("%d\n", check[a]);
return 0;
}
Colored by Color Scripter
|
반응형