• + 0 comments

    My super non-slick code. Passed all tests though.

    def getWays(n, c): # Write your code here

    rows = len(c)
    cols = n + 1
    
    dp = [[0 for _ in range(cols)] for _ in range(rows)]
    
    for row in range(rows):
        for col in range(cols):
            if col == 0:
                dp[row][col] = 1
            elif row == 0:
                if col < c[row]:
                    dp[row][col] = 0
                else:
                    dp[row][col] = dp[row][col-c[row]]
            else:
                if col < c[row]:
                    dp[row][col] = dp[row-1][col]
                else:
                    dp[row][col] = dp[row-1][col] + dp[row][col-c[row]]
    
    return dp[rows-1][cols-1]