Lemonade Change

class Solution:
    def lemonadeChange(self, bills):
        cache = {c: 0 for c in [5, 10, 20]}

        for bill in bills:
            cache[bill] = cache[bill] + 1
            change = bill - 5
            while change > 0:
                if change >= 20 and cache.get(20) > 0:
                    change = change - 20
                    cache[20] = cache[20] - 1
                elif change >= 10 and cache.get(10) > 0:
                    change = change - 10
                    cache[10] = cache[10] - 1
                elif change >= 5 and cache.get(5) > 0:
                    change = change - 5
                    cache[5] = cache[5] - 1
                else:
                    return False
        return True