Leetcode Java Water Bottles
업데이트:
문제
코드
class Solution {
public int numWaterBottles(int numBottles, int numExchange) {
int result = numBottles;
while (numBottles >= numExchange) {
int newBottles = numBottles / numExchange;
result += newBottles;
numBottles = (numBottles % numExchange) + newBottles;
}
return result;
}
}
결과
설명
-
numBottles 개의 물을 다 마신 후 numExchange 개의 빈 병을 하나의 새 물로 교환해줄 때, 마실 수 있는 물의 갯수를 구하는 문제이다.
-
result는 마실 수 있는 물의 갯수를 저장할 변수로, 처음 주어진 물인 numBottles 개의 물은 모두 마실수 있어 해당 갯수로 초기화한다.
- numBottles가 numExchange보다 크거나 같을 때 까지 아래를 반복한다.
- newBottles는 빈 병을 numExchange 개 단위로 교환한 새 물의 수를 나타내는 변수로, 최대 교환 가능한 $\frac{numBottles}{numExchange}$의 몫에 대한 갯수를 넣어준다.
- result에 교환한 새 물을 모두 마시는 경우인 newBottles을 더해준다.
- numBottles에 교환하고 남은 $\frac{numBottles}{numExchange}$의 나머지에 대한 갯수에 위에서 교환하여 다 마신 newBottles 개의 공병을 더해준다.
- 결과가 완료되면 물을 마신 병의 갯수가 저장된 result를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기