반응형
코드
n = int(input())
a = list(map(int,input().split()))
dp = [n+1]*n
dp[0] = 0
for i in range(n):
for j in range(1,a[i]+1):
if i + j < n:
dp[i+j] = min(dp[i+j],dp[i]+1)
if dp[-1] == n+1:
print(-1)
else:
print(dp[-1])
반응형
'알고리즘 > dynamic programming' 카테고리의 다른 글
[백준][Python] 16194번 카드 구매하기2 (0) | 2022.12.27 |
---|---|
[백준][Python] 16395번 파스칼의 삼각형 (0) | 2022.12.26 |
[백준][Python] 13699번 점화식 (0) | 2022.12.19 |
[백준][Python] 18353번 병사 배치하기 (0) | 2022.12.14 |
[백준][Python] 1965번 상자넣기 (0) | 2022.12.09 |
댓글