728x90
반응형
기본적인 다이나믹 프로그래밍 문제이다.
N = int(input())
li = list(map(int, input().split()))
dp = [N+1]*N
dp[0] = 0
for i in range(N):
for j in range(1, li[i]+1):
if i+j >= N:
break
dp[i+j] = min(dp[i+j], dp[i]+1)
print(dp[N-1] if dp[N-1] != N+1 else -1)
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 11279번 최대 힙(python) (0) | 2021.03.22 |
---|---|
백준 알고리즘 14430번 자원 캐기(python) (0) | 2021.03.21 |
백준 알고리즘 4097번 수익(python) (0) | 2021.03.21 |
백준 알고리즘 1965번 상자넣기(python) (0) | 2021.03.21 |
백준 알고리즘 2491번 수열(python) (1) | 2021.03.21 |