코딩테스트 대비/BOJ

[Baekjoon/Python] 11726번: 2×n 타일링 - 효과는 굉장했다!

bluetag_boy 2021. 11. 14. 03:59
반응형
 

11726번: 2×n 타일링

2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.

www.acmicpc.net

알고리즘 분류

  • 다이나믹 프로그래밍

 

SOLUTION

import sys

n = int(sys.stdin.readline())
dp = [0] * 1001 # n은 최대 1000까지 이므로 1001개 생성(0번째 포함)
# n == 2일때 까지는 규칙성이 보이지 않으므로 따로 생성
dp[0] = 0
dp[1] = 1
dp[2] = 2

for i in range(3, 1001):
    dp[i] = dp[i-1] + dp[i-2] # n>=3 일때 다음과 같은 규칙이 성립된다

print(dp[n] % 10007)