본문 바로가기

코딩테스트/Python

[Python] 백준 # 11726 - 2×n 타일링

문제


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

 

11726번: 2×n 타일링

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

www.acmicpc.net

 

 

 

풀이


n = int(input())
d = [0]*(n+1)
d[0]=1
d[1]=1
for i in range(2,n+1):
    d[i]=(d[i-2]+d[i-1])%10007
print(d[n])

d[2]를 구해주기 위해 d[0]을 1로 지정하였다.

 

 

d[0]을 지정해주지 않고 d[1000]까지 먼저 다 계산 해놓고 d[n]을 구하는 방법도 있다.

n = int(input())

dp = [0] * 1001
dp[1] = 1
dp[2] = 2

for i in range(3,1001):
    dp[i] = dp[i-1] + dp[i-2]

print(dp[n] % 10007)