백준
백준 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])