chldkato

백준 11727 2xn 타일링 2 (파이썬) 본문

백준

백준 11727 2xn 타일링 2 (파이썬)

chldkato 2020. 3. 3. 15:45

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

 

11727번: 2×n 타일링 2

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

www.acmicpc.net

한 칸을 채우는 방법은 세로로 타일을 배치하는 방법 하나

두 칸을 채우는 방법은 가로로 2개로 배치하는 방법과 2x2 타일을 배치하는 방법 2개

따라서 a[i] = a[i-1] + 2 * a[i-2]

import sys

input = sys.stdin.readline

n = int(input())

if n == 1:
    print(1)
    sys.exit()

a = [0 for _ in range(n+1)]
a[0], a[1] = 1, 1
for i in range(2, n+1):
    a[i] = (a[i-1] + 2 * a[i-2]) % 10007

print(a[n])

Comments