250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(Leet Code JS)Lemonade Change 본문
728x90
반응형
https://leetcode.com/problems/lemonade-change/
그리디 알고리즘.
5, 10, 20달러를 받았을 때 거스름돈을 남길 수 있는지 확인하면 된다.
money라는 이름으로 3의 길이만큼 선언.
0의 인덱스부터 5, 10, 20 달러를 가진다.
for문으로 bills를 순회.
만약 5달러를 받았다면 거스름돈은 없기 때문에 money[0]++.
10달러를 받았다면 5달러를 거슬러 주고, 10달러를 1개 추가한다.
조건 검사를 하여 5달러가 없다면 return false.
그렇지 않다면 money[0]--, money[1]++를 해준다.
20달러를 받았다면 2가지 조건을 검사할 수 있다.
10달러 + 5달러를 거슬러 주거나,
5달러 3장을 거슬러 주면 된다.
만약 이에 해당하는 돈이 없다면 바로 return false.
그럴 돈이 있다면 각 조건에 맞게 돈을 거슬러 주고, 더하면 된다.
const lemonadeChange = (bills) => {
const money = [0, 0, 0];
for(const bill of bills){
if(bill === 5){
money[0]++;
} else if(bill === 10){
if(money[0] === 0){
return false;
}
money[1]++;
money[0]--;
} else if(bill === 20){
if(money[0] >= 1 && money[1] >= 1){
money[0]--;
money[1]--;
money[2]++;
} else if(money[0] >= 3){
money[0] -= 3;
money[2]++;
} else{
return false;
}
}
}
return true;
};
728x90
반응형
'Leet Code 알고리즘' 카테고리의 다른 글
(Leet Code JS)Triangle (0) | 2022.03.01 |
---|---|
(Leet Code JS)DI String Match (0) | 2022.02.28 |
(Leet Code JS)Can Place Flowers (0) | 2022.02.25 |
(Leet Code JS)Assign Cookies (0) | 2022.02.25 |
(Leet Code JS)Decode Ways (0) | 2022.02.18 |