문제
풀이
2x1의 직사각형을 타일로 채우는 방법은 타일을 세로로 새우는 방법 한 가지 이다.
2x2의 직사각형을 타일로 채우는 방법은 세 가지이다.
이 이후부터 i 는 i-1(전 것)에 막대기 하나를 붙인 경우와 i-2(전 전것)에 막대 두 개를 가로로 붙인 경우의 수, i-2에 2x2 타일을 붙인 경우의 수를 합친 것이 된다.
따라서 점화 식은 cache[i]=cache[i-1]+2*cache[i-2]가 된다.
n = int(input())
cache = [0 for _ in range(n+1)]
if n == 1:
print(1)
exit(0)
cache[1] = 1
cache[2] = 3
for i in range(3, n+1):
cache[i] = cache[i-1]+2*cache[i-2]
print(cache[-1] % 10007)
댓글
댓글 쓰기