이것이 코딩테스트다 with 파이썬 - Chp 8. 다이나믹 프로그래밍_4. 바닥 공사

n = int(input())
d = [0] * 1001

d[1] = 1
d[2] = 3
for i in range(3, n+1):
    d[i] = (d[i-1] + 2 * d[i-2]) % 796796

print(d[n])

메모이제이션을 쓰지 않고 뭔가 수식이 나오지 않을까 하는 생각에 한참을 고민했었다.
결국 N=1, N=2인 경우만 저장해놓고 그것만 고려하면 풀리는 문제였다.

좋은 웹페이지 즐겨찾기