문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
갖고 있는 금액을 나타내는 정수 money와, 그 돈을 나누어 주어야 할 아이들의 수를 나태는 정수 children이 주어진다.
다음 규칙에 따라 돈을 분배해야 한다.
규칙에 따라 돈을 분배할 때, 정확히 8달러를 받을 수 있는 아이들의 최대 수를 반환해라. 만약 돈을 분배할 방법이 없다면 -1을 반환해라.
#1
Input: money = 20, children = 3
Output: 1
Explanation: 8달러를 갖은 아이들의 최대 수는 1이다. 돈을 분배할 수 있는 한 방법이다.
- 8달러를 첫 번째 아이에게 준다.
- 9달러를 두 번째 아이에게 준다.
- 3달러를 세 번째 아이에게 준다.
8달러를 받는 아이들의 수가 1보다 큰 분포는 존재하지 않는다는 것을 증명할 수 있다.
#2
Input: money = 16, children = 2
Output: 2
Explanation: 각 아이는 8달러를 갖게 할 수 있다.
class Solution {
public int distMoney(int money, int children) {
if (money < children) {
return -1;
}
money -= children;
int count = money / 7;
int remainder = money % 7;
if (count == children && remainder == 0) {
return children;
}
if (count >= children) {
return children - 1;
}
if (count == children - 1 && remainder == 3) {
return count - 1;
}
return count;
}
}