문제 링크
https://www.acmicpc.net/problem/11726
문제
2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.
아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.
풀이
2×n 크기의 직사각형을 채우는 방법의 수를 rec[n]라고 한다.
n = 1일 때, rec[1] = 1
n = 2일 때, rec[2] = 2
n = 3일 때, rec[3] = 3 = rec[1] + rec[2]
n = 4일 때, rec[4] = 5 = rec[2] + rec[3]
n = 5일 때, rec[5] = 8 = rec[3] + rec[4]
...
n = i일 때, rec[i] = rec[i-2] + rec[i-1]
정답 코드
import sys
input = sys.stdin.readline
n = int(input())
rec = [0] * 1001
rec[1] = 1
rec[2] = 2
for i in range(3, 1001):
rec[i] = rec[i-2] + rec[i-1]
print(rec[n] % 10007)
반응형
'Algorithm > 백준 (BOJ)' 카테고리의 다른 글
[Python] 백준/BOJ 9461번: 파도반 수열 (0) | 2023.03.22 |
---|---|
[Python] 백준/BOJ 2579번: 계단 오르기 (0) | 2023.03.21 |
[Python] 백준/BOJ 9095번: 1, 2, 3 더하기 (0) | 2023.03.19 |
[Python] 백준/BOJ 2346번: 풍선 터뜨리기 (0) | 2023.02.27 |