[Leetcode] 860. Lemonade Change

Algorithm|2021. 11. 19. 15:54
반응형

 

 

Lemonade Change - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

1. 시작이 5가 아니면 무조건 false 임
2. 시작이 5라면 이후
5$인 손님은 pass
10$인 손님은 5$를 주고
20$인 손님은 15$를 줘야됨

IDEA 5$,10$ 카운트를 각각 만들자
5$인 손님이 오면  -> 5카운트 증가

10인 손님이 오면
    이때 5카운트가 0이라면 false 리턴
   10카운트 증가 후 5카운트 감소

20인 손님이 오면
    10$ , 5$ 1개 씩 주면 됨
    5$ 3개를 줘도됨 
위 아래 순서 중요함 잘 생각해봐야함
class Solution {
public:
    bool lemonadeChange(vector<int>& bills) 
    {
        int f_count = 0; // 5$ 개수
        int t_count = 0; // 10$ 개수
        
        if(bills[0] != 5) return false; // 2. 내용
        
        for(int i=0; i<bills.size(); i++)
        {
            if(bills[i] == 5)
                f_count++;
            
            else if(bills[i] == 10)
            {
                if(f_count == 0)
                    return false;
                t_count++;
                f_count--;
            }
            else if(bills[i] == 20)
            {    
                if(f_count > 0 && t_count > 0) //5$랑 10$으로 거스름
                {
                    f_count--;
                    t_count--;
                }
                else if(f_count >= 3) // 5$ 3개로 거스름
                    f_count -= 3;
                else 
                    return false;
            }
            cout<< f_count << "  " << t_count << " \n";   
        }
        return true;
    }
};
반응형

'Algorithm' 카테고리의 다른 글

[백준] 17211. 좋은날 싫은날  (0) 2021.11.21
[Leetcode] 38. Count and Say  (0) 2021.11.19
[Leetcode] 6. Zigzag Conversion  (0) 2021.11.18
[Leetcode] 551. Student Attendance Record I  (0) 2021.11.18
[백준] 6321. IBM 빼기 1  (0) 2021.11.17

댓글()