728x90
백준 파이썬 공부 2025.02.12
11726번 2xn 타일링 (실버 3)
1. 문제
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.
아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.
2. 입력
첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)
3. 출력
첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.
4. 문제 풀이
다이나믹 프로그래밍 DP를 이용해서 풀어보자
점화식을 먼저 찾아야한다.
1 2 3 5 8 ...
인걸로 보아, 점화식은 dp[i] = dp[i-1] + dp[i-2] 인 것 같다.
알고보니 피보나치 수열이었다.
>>>코드
def DP(n):
dp = [0] * (n+1)
for i in range(1, n+1):
if i == 1:
dp[i] = 1
elif i == 2:
dp[i] = 2
else:
dp[i] = dp[i-1] + dp[i-2]
return dp[n]
n = int(input())
print(DP(n) % 10007)
728x90
'백준 > 백준 파이썬' 카테고리의 다른 글
백준 파이썬 10026번 적록색약 (Today I Learn 2025.02.19) (0) | 2025.04.04 |
---|---|
백준 파이썬 11727번 2xn 타일링 2 (Today I Learn 2025.02.16) (0) | 2025.04.03 |
백준 파이썬 9375번 패션왕 신해빈 (Today I Learn 2025.02.09) (1) | 2025.04.01 |
백준 파이썬 21736번 헌내기는 친구가 필요해 (Today I Learn 2025.02.05) (0) | 2025.03.31 |
백준 파이썬 11659번 구간 합 구하기 4 (Today I Learn 2025.02.01) (0) | 2025.03.30 |