콜라문제는 빈병을 주고 새병을 받아 또 빈병을 만들고, 그 빈병으로 새병을 받고 또 빈병을 만들고 ... 같은 매커니즘을 반복하는 알고리즘이었다. 그래서 재귀함수를 사용해 문제를 풀어보았다.
class Solution {
int a; // a, b, total은 전역변수 선언
int b;
int total;
public int solution(int a, int b, int n) {
this.a = a;
this.b = b;
getBottle(n);
return total;
}
// 새병받기 메소드
void getBottle(int n) {
// a보다 가진 병이 적다면 재귀 탈출
if(n < a) {
return;
}
int mot = n/a * b;
int namuji = n%a;
total += mot;
getBottle(mot + namuji);
}
}