빈 콜라를 a 병 가져다주면 b 개를 주는 가게가 있는데 n 개를 주면 콜라 몇 병을 받을 수 있을까요를 묻는 문제다.
문제만 봐도 반복되는 로직을 조건에 따라 처리해야 하는 문제로 재귀로 처리했다.
const calcCoke = (a, b, n, count) => {
const newCoke = Math.floor((n / a)) * b;
const remainCoke = n % a;
const emptyCoke = newCoke + remainCoke;
if(emptyCoke >= a) {
return calcCoke(a, b, emptyCoke, count + newCoke);
}
return newCoke + count;
};
function solution(a, b, n) {
return calcCoke(a, b, n, 0);
}