class Solution {
    public int solution(int a, int b, int n) {
         int result = 0;
        //빈 병 a개마다 꽉 찬 병 b개를 돌려줌
        //1회차 빈 병 20개 -> 꽉 찬 병 10개
        //2회차 빈 병 10개 -> 꽉 찬 병 5개
        //3회차 빈 병 4+1개 -> 꽉 찬 병 2개
        //4회차 빈 병 2+1개 -> 꽉 찬 병 1개
        //5회차 빈 병 1+1개 -> 꽉 찬 병 1개
        //5회차 빈 병의 개수가 a와 같거나 작으면 반복 종료
        //빈 병 저장할 변수
        int emptyBottle = 0;
        while ((n / a) * b > 0) {
            result += (n / a) * b;
            if (n % a < a) {
                emptyBottle += (n % a);
            }
            n = (n / a) * b;
            if (n < a) {
                n += emptyBottle;
                emptyBottle = 0;
            }
        }
        
        return result;
    }
}반응형
    
    
    
  'PS > Programmers' 카테고리의 다른 글
| [level1, HashMap] 달리기 경주 (0) | 2023.05.10 | 
|---|---|
| [level1, HashSet/TreeSet] 두 개 뽑아서 더하기 (0) | 2023.03.30 | 
| [level1, 배열/정렬] K번째수 (0) | 2023.03.29 | 
| [level1, 비트 연산] [1차] 비밀지도 (0) | 2023.03.27 | 
| [level1, Arrays] 삼총사 (0) | 2023.03.26 |