Leetcode Java Distribute Candies to People
업데이트:
문제
코드
class Solution {
public int[] distributeCandies(int candies, int num_people) {
int[] result = new int[num_people];
for (int i = 0; candies > 0; i++) {
result[i % num_people] += Math.min(candies, i + 1);
candies -= i + 1;
}
return result;
}
}
결과
설명
- num_people의 사람들에게 순차적으로 1개부터 1개씩 증가시키며 candies의 사탕을 줄 때, 사람들 별 받은 사탕의 갯수를 반환하는 문제이다.
- 마지막 사람까지 사탕을 받으면 다시 첫 사람부터 사탕의 갯수를 계속 증가시키며 제공한다.
-
result는 결과를 저장할 배열로, num_people 크기의 정수 배열로 초기화한다.
- 0부터 candies의 갯수가 0 초과일 때 까지 i를 증가시키며 아래를 반복한다.
- result의 $\frac{i}{num_people}$의 나머지 값에 해당하는 위치에 candies와 $i + 1$ 중 작은 값을 넣어준다.
- candies에 제공된 $i + 1$개를 차감해준다.
- 반복이 완료되면 result를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기