티스토리 뷰
728x90
https://www.acmicpc.net/problem/11726
- 문제 :
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.
아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.
- 풀이 :
예전에 풀었던 문제와 똑같은 문제이다. 그림을 그려가며 규칙을 찾는데
f(n) = f(n-2) + f(n-1)이라는 점화식이 도출되었다 이를 구현하면 끝이다.
- 소스코드 :
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import sys
input =sys.stdin.readline
if __name__ == "__main__":
N = int(input())
dp = [0] * (N+2)
dp[1] = 1
dp[2] = 2
if N > 2:
for i in range(3,N+1):
dp[i] += dp[i-1]+dp[i-2]
print(dp[N]%10007)
|
cs |
320x100
'Algorithm > DP(Dynamic Programming' 카테고리의 다른 글
(Python) - BOJ(17626번) : Four Squares (0) | 2022.02.15 |
---|---|
(Python) - BOJ(11727번) : 2 x n 타일링 2 (0) | 2022.02.09 |
(Python) - BOJ(11660번) :구간 합 구하기 5 (0) | 2022.02.09 |
(Python) - BOJ(11053번) : 가장 긴 증가하는 부분 수열 (0) | 2022.02.07 |
(Python) - BOJ(9461번) : 파도반 수열 (0) | 2022.02.04 |
댓글
© 2022 WonSeok, All rights reserved