mincost tickets

🏠
 1 def mincostTickets(days, costs):
 2     dp = [0] * 366
 3     days_set = set(days)
 4     for d in range(366):
 5         if d not in days_set:
 6             dp[d] = dp[d - 1]
 7         else:
 8             mincost = dp[d - 1] + costs[0]
 9             mincost = min(mincost, dp[max(0, d - 7)] + costs[1])
10             mincost = min(mincost, dp[max(0, d - 30)] + costs[2])
11             dp[d] = mincost
12     return dp[-1]
13 
14 
15 print(mincostTickets([1, 4, 6, 7, 8, 20], [2, 7, 15]))