860. Lemonade Change
Easy
At a lemonade stand, each lemonade costs $5. Customers are standing in a queue to buy from you and order one at a time (in the order specified by bills). Each customer will only buy one lemonade and pay with either a $5, $10, or $20 bill. You must provide the correct change to each customer so that the net transaction is that the customer pays $5.
Note that you do not have any change in hand at first.
Given an integer array bills where bills[i] is the bill the ith customer pays, return true if you can provide every customer with the correct change, or false otherwise.
Solution
class Solution:
def lemonadeChange(self, bills: List[int]) -> bool:
monies = {5:0, 10:0, 20:0}
for bill in bills:
match bill:
case 5:
monies[5] += 1
case 10:
monies[10] += 1
monies[5] -= 1
case 20:
monies[20] += 1
if monies[10] > 0:
monies[10] -= 1
monies[5] -= 1
else:
monies[5] -= 3
if monies[5] < 0:
return False
return True