DP 문제. 초기값 설정을 할 때, 0을 제외한 모든 값을 1로 설정하는 것만 주의하면 된다. i의 길이를 가진 계단 수의 마지막 숫자를 j라고 할때, 그 경우의 수는 i-1 길이를 가지고 마지막 숫자가 j-1 혹은 j+1인 직전의 계단수의 경우의 수의 합이 된다.
풀이 코드
N = int(input())
MOD = 1000000000
dp = [[0]*10 for _ in range(N)]
for i in range(1, 10) :
dp[0][i] = 1
for i in range(1, N) :
for j in range(10) :
if j-1 >= 0 :
dp[i][j] = (dp[i][j] + dp[i-1][j-1]) % MOD
if j+1 < 10 :
dp[i][j] = (dp[i][j] + dp[i-1][j+1]) % MOD
print(sum(dp[-1]) % MOD)