Problem link
https://leetcode.com/problems/lemonade-change/
Problem Summary
5달러로 레모네이드를 팔 때 거스름돈을 줄 수 있는지 판단하는 문제. 손님은 5, 10, 20 달러 지폐만 사용한다.
Solution
그냥 단순 시뮬레이션.
약간의 그리디도 들어가는데 20달러를 냈을 때 10달러가 있다면 10달러 포함해서 거슬러 주는게 무조건 이득이다.
나머지는 5달러로 거슬러 주고 5달러 지폐가 음수가 되면 False를 리턴하면 된다.
Source Code
class Solution:
def lemonadeChange(self, bills: List[int]) -> bool:
change5, change10 = 0, 0
for bill in bills:
if bill == 5:
change5 += 1
elif bill == 10:
change5 -= 1
change10 += 1
else:
if change10 > 0:
change10 -= 1
change5 -= 1
else:
change5 -= 3
if change5 < 0:
return False
return True