-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path860-Lemonade_Change.js
46 lines (39 loc) · 1.01 KB
/
860-Lemonade_Change.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// 89ms, 94.72%
// 50.4 MB
const lemonadeChange = function(bills) {
const money = {
5: 0,
10: 0,
20: 0,
};
for(let i = 0; i < bills.length; i++) {
const bill = bills[i];
switch(bill) {
case 5:
money[5] += 1;
break;
case 10:
if(money[5] > 0) {
money[5] -= 1;
money[10] += 1;
} else {
return false;
}
break;
case 20:
if(money[10] > 0 && money[5] > 0) {
money[10] -= 1;
money[5] -= 1;
} else if(money[5] >= 3) {
money[5] -= 3;
} else {
return false;
}
money[20] += 1;
break;
}
}
return true;
};
console.log(lemonadeChange([5,5,5,10,20]));
console.log(lemonadeChange([5,5,10,10,20]));