앞에 나온 치킨 문제와 거의 똑같이 풀었다.
치킨 문제에서는 쿠폰 10장당 1마리를 서비스로 줬다면, 여기서는 a개당 b개를 주는 문제이기 때문에 적절히 대입해서 작성하면 된다!
10마리당 1마리 일때 나누기 10을 했으니까, 이 문제에서는 나누기 a를 하면 된다.
그리고 1개를 얻는 게 아니라 b개를 얻는 문제이니까 a개로 나눈 몫에 b를 곱해서 더해주면 된다!
이게 뭔소리지 싶겠지만 코드를 보면 바로 이해 가능!
public class Coke {
public int solution(int a, int b, int n) {
int count = 0;
int num = n;
while(num >= a) {
count += num / a * b;
num = num / a * b + num % a;
}
return count;
}
public static void main(String[] args) {
Coke coke = new Coke();
System.out.println(coke.solution(2, 1, 20)); // 19
System.out.println(coke.solution(3, 1, 20)); // 9
}
}