function solution(a, b, n) {
let count = 0;
for (let i = 1; i < n; i++) {
if (i % a == 0) {
count += 1;
}
}
return count
}
그런데 위와 같은 함수를 병이 교환 될때까지 몇 번 반복해야하는 문제를 마주했다.
함수를 반복해 본적이 없었고, 재귀 함수라는 것이 있다고는 들었지만 아직은 구글링을 해도 이해가 가지 않았다. 그래서 생각을 바꿔 다시 단순하게 접근해보려했다.
1.while문을 활용하여 돌려받는 콜라를 계속 더해준다.
2.돌려 받는 콜라는 n/a의 정수에 b 만큼이다.
3.다시 남은 콜라는 n/a의 정수 b + n/b의 나머지이다.
function solution(a, b, n) {
let coke = 0; // 돌려 받을 빈 콜라병
while (n >= a) { // n이 a보다 크거나 같다면
coke += Math.floor(n/a)*b // coke에 n/a의 몫의 정수값에 곱하기 b를 해준다.
n = Math.floor(n/a)*b + n%a;// n/a의 몫*b 에 n/a 나머지값을 더하면 남은 콜라가 된다. 이 콜라병으로 다시 반복한다.
} return coke;
}