코드 def dp_tile(n): if n == 1: return n # n이 1인 경우, indexError 방지 n_cnt = [0]*(n+1) n_cnt[1], n_cnt[2] = 1, 3 for i in range(3, n+1): n_cnt[i] = n_cnt[i-1]+n_cnt[i-2]+n_cnt[i-2] # f(n) = f(n-1) + 2*f(n-2) return n_cnt[n] x = int(input()) print(dp_tile(x)%10007) 1793번을 보완해서 나온 문제인지는 모르겠지만, 매우 유사하다. 그리고 n의 범위가 1부터 시작한다. 나머지는 똑같다. 1x2를 넣을 때는 n-1인 사각형을 채우는 경우의 수와 같고 2x2를 넣을 때는 n-2를 채우는 경우의 수와 같다. 그런데..