-문제: https://www.acmicpc.net/problem/10844
풀이 보면서 정수 삼각형이랑 비슷하다고 느낀 문제.
처음에는 점화식이 dp[i]=dp[i-1]*2-1이라고 생각했는데 바로 틀렸다.
이는 숫자에서 +-1을 하는데, 0은 -1이 안되므로 1밖에 없고, 9도 +1하면 10이라서 안되니까 8밖에 없어서
0과 9일 때 제외는 모든 이전 자리수에서 가져오면 된다.
-정답 풀이
n=int(input())
dp=[[0 for _ in range(10)] for _ in range(101)]
for i in range(1,10):
dp[1][i]=1
for i in range(2,n+1):#2부터 n자리 수까지
for j in range(10): #0부터 9에 대해서 진행
if j==0:
dp[i][j]=dp[i-1][1]
elif j==9:
dp[i][j]=dp[i-1][8]
else:
dp[i][j]=dp[i-1][j-1]+dp[i-1][j+1]
print(sum(dp[n])%(10**9))
'백준 > DP' 카테고리의 다른 글
[dp/백준] 11052번: 카드 구매하기(알고리즘 익히기) (0) | 2022.06.05 |
---|---|
[dp/백준] 1010번: 다리 놓기 (0) | 2022.06.05 |
[dp/백준] 2156번: 포도주 시식 (0) | 2022.06.03 |
[dp/백준] 1912번: 연속합(2차) (0) | 2022.06.02 |
[dp/백준] 11053: 가장 긴 증가하는 수열 (0) | 2022.06.02 |