N = int(input()) dp = [[0]*10 for _ in range(N)] temp = [-1,1] for i in range(N): for j in range(10): if i == N-1: if j == 0: continue if i == 0: dp[0][j] = 1 else: for k in temp: nx = j+k if 0<=nx<10: dp[i][j] += dp[i-1][j+k] print(sum(dp[N-1])%1000000000)
dp 관련 문제이다.
이전 x-1축과 x축의 j 값이 1이 차는 경우를 더해주면 되는 것이다. 그리고 마지막 N-1 축까지 왔을 때 그때까지 누적된 수를 더해주면 된다.
'알고리즘 > 백준' 카테고리의 다른 글
[BOJ] 2140 지뢰찾기 (0) | 2021.01.15 |
---|---|
[BOJ] 1058 친구 (0) | 2021.01.14 |
[BOJ] 1149 RGB 거리 (0) | 2021.01.14 |
[BOJ] 12865 평범한 배낭 (0) | 2021.01.14 |
[BOJ] 1012 유기농 배추 (0) | 2021.01.13 |