점화식도 규칙도 막 찾으려고 애썼는데 결국 못 찾구.. 구글링을 했다.. 아이디어는 2차원 배열! DP[자릿수][맨 뒷자리의 수] 형식으로 리스트를 만드는 것이다. 2차원 리스트를 활용해서 열심히 끄적이며 풀어보았다.
import sys
input = sys.stdin.readline
N = int(input())
DP = [[0] * 10 for _ in range(N+1)] # DP[자릿수][맨 뒷자리의 수]
DP[1] = [1 for _ in range(10)]
DP[1][0] = 0 # 1자리의 수에는 0 없음
for i in range(2, N+1):
DP[i][0] = DP[i-1][1]
DP[i][9] = DP[i-1][8]
for j in range(1, 9):
DP[i][j] = DP[i-1][j-1] + DP[i-1][j+1]
print(sum(DP[N]) % 1000000000)
