320x100
문제 : https://leetcode.com/problems/distribute-candies-to-people/
candies 개의 사탕을 n명의 사람들에게 배분하려고 한다.
첫 번째 사람에게는 1개, 두 번째 사람에게는 2 ... n번째 사람에게는 n개의 사탕을 나눠준다.
이 후, 다시 첫 번째 사람에게 n+1, 두 번째 사람에게는 n+2 ... n번째 사람에게는 2n개의 사탕을 나눠준다.
이 절차를 모든 사탕을 나눠줄때까지 반복한다. 만일 나눠줄 사탕이 부족하다면 남은 사탕을 해당 사람에게 주고 해당 절차를 종료한다.
사탕을 모두 나눠줬을 때, 사람들이 가지는 사탕의 개수들의 리스트를 구하라.
candies를 1, 2, 3 .. 개씩 모든 사람들에게 차례대로 모든 사탕을 소요할 때까지 나눠준다.
int ind = 0;
while(candies > 0) {
int candy = min(ind + 1, candies); // 남은 캔디 보다는 같거나 작아야 한다.
answer[(ind++) % num_people] += candy;
candies -= candy;
}
시간복잡도는 O(candies).
320x100
'알고리즘 문제 > Leetcode' 카테고리의 다른 글
[Leetcode] 56. Merge Intervals (0) | 2021.12.24 |
---|---|
[Leetcode] 210. Course Schedule II (0) | 2021.12.23 |
[Leetcode] 976. Largest Perimeter Triangle (0) | 2021.12.21 |
[Leetcode] 902. Numbers At Most N Given Digit Set (0) | 2021.12.19 |
[Leetcode] 147. Insertion Sort List (0) | 2021.12.15 |
댓글