[프로그래머스] Lv.1 콜라 문제.java

hgghfgf·2023년 5월 13일
0

프로그래머스

목록 보기
66/227

콜라 문제.java

class Solution {
    public int solution(int a, int b, int n) {
        int answer = 0;
        
        int emptyBottles = n;  // 상빈이가 가지고 있는 빈 병의 개수
        int totalCola = 0;     // 상빈이가 받은 총 콜라 병의 수
        
        while (emptyBottles >= a) {
            int exchangedCola = emptyBottles / a;  // 빈 병을 주고 받은 콜라 병의 수
            totalCola += exchangedCola * b;        // 콜라 병의 수를 누적
            
            emptyBottles = exchangedCola * b + emptyBottles % a;  // 빈 병의 수 업데이트
        }
        
        answer = totalCola;
        return answer;
    }
}

a개의 빈 병을 가져다주면 b개의 콜라 병을 주는 상황에서, 상빈이가 가지고 있는 빈 병의 개수 n을 활용하여 콜라 병의 수를 계산합니다.

emptyBottles 변수에 초기로 n을 할당합니다. 이후, 반복문을 통해 emptyBottles가 a보다 크거나 같을 때까지 계속해서 콜라 병을 받을 수 있는 상태를 유지합니다.

반복문 내에서는 상빈이가 주고 받은 콜라 병의 수 exchangedCola를 계산합니다. 이를 통해 상빈이가 받은 총 콜라 병의 수 totalCola에 exchangedCola * b를 누적합니다.

빈 병의 수를 업데이트하기 위해 emptyBottles를 exchangedCola * b와 emptyBottles % a를 합산한 값으로 갱신합니다.

emptyBottles가 a보다 작아지면 반복문을 종료하고, totalCola를 결과값으로 반환합니다.

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

0개의 댓글