Climb stairs with minimum moves
def fun(n, arr, dp):
# When asked number of paths, dp[n]=1
# But, when asked number of ways, dp[n]=0
dp[n]=0
for i in range(n-1,-1,-1):
k=float('inf')
for j in range(1,arr[i]+1):
if(i+j<=n):
k=min(k,dp[i+j])
dp[i]=k+1
return dp[0]
def main():
n = int(input())
jumps = []
for i in range(n) :
jumps.append(int(input()))
dp = [0] * (n + 1)
ans = fun( n, jumps, dp)
if (ans < 30):
print(ans)
else:
print("null")
if __name__ == "__main__":
main()
Last updated