Climb Stairs With Variable Jumps

Problem Link: https://www.pepcoding.com/resources/online-java-foundation/dynamic-programming-and-greedy/climb-stairs-with-variable-jumps-official/ojquestion

def fun(n, arr, dp):

    dp[n]=1
    for i in range(n-1,-1,-1):
        for j in range(1,arr[i]+1):
            if(i+j<=n):
                dp[i]=dp[i]+dp[i+j]
    return dp[0]

def main():
    n = int(input())
    arr = []
    
    for i in range(0, n) :
        arr.append(int(input()))
    
    dp = [0] * (n + 1)

    print(fun(n, arr, dp))
    
if __name__ == "__main__":
    main()

Last updated