백준 11727번 바로가기

나의 풀이

# 입력
import sys
read = sys.stdin.readline

arr = [1, 2, 3] + [0]*1000

# 처리
for i in range(n:=int(read().strip())):
  arr[i+2] = (arr[i+1] + arr[i]) % 10007

print(arr[n-1])

CODE REVIEW

  1. 백준 11726번 - 2xn 타일링의 확장판.
  2. 점화식은 $a_{n+2} = a_{n+1} + 2 a_{n}$
  3. n+1에 (1*2) 한 개 넣거나, n에 (2*1) 위아래로 두 개 또는 (2*2)짜리 한 개 넣는 경우의 합으로 계산할 수 있다.