Dice Roll Simulation LeetCode solution in Python
1class Solution:2def dieSimulator(self, n: int, rollMax: List[int]) -> int:3dp = {}45def solve(n, last, count):6if n == 0:7return 18if (n, last, count) in dp:9return dp[(n, last, count)]10ans = 011for i in range(6):12if last == i:13if count == rollMax[i]:14continue15ans += solve(n - 1, last, count + 1)16else:17ans += solve(n - 1, i, 1)18dp[(n, last, count)] = ans19return ans2021return solve(n, None, 0) % 1000000007