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를 결과값으로 반환합니다.