just inside

[백준] Silver 3. 11726 - 2xn 타일링 python 본문

coding test/dp

[백준] Silver 3. 11726 - 2xn 타일링 python

방울도마도 2024. 8. 19. 12:02
728x90

문제 링크

https://www.acmicpc.net/problem/11726


문제 설명

2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.

아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.



입력

첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)

 

출력

첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.


제출 코드

import sys

input = sys.stdin.readline

n = int(input().rstrip())

dp = [0,1,2,3]

if n > 3:
    for i in range(4, n+1):
        dp.append(dp[i-1]+dp[i-2])

print(dp[n]%10007)

 

풀이

  • 4부터는 3에 1을 더하고, 2에 2를 더하면 된다. 즉, 1 작은 수의 가짓수 + 2 작은 수의 가짓수를 더해주면 된다.

알아둘 사항

728x90