Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 코딩테스트
- string
- two pointers
- Data Structure
- greedy
- bit manipulation
- simulation
- Binary Search
- java
- Counting
- 파이썬
- 구현
- dynamic programming
- sorting
- Number Theory
- Stack
- 자바
- Class
- Math
- Binary Tree
- geometry
- Matrix
- implement
- database
- SQL
- array
- hash table
- Method
- 코테
- Tree
Archives
- Today
- Total
코린이의 소소한 공부노트
[LeetCode/Easy] 1103. Distribute Candies to People 본문
1. Input
1) 사탕의 개수를 담은 int 변수 candies
2) 사람의 수를 담은 int 변수 num_people
2. Output
1) 다음 규칙처럼 사탕을 나눠줬을 때, 사람들이 받은 사탕의 개수를 담은 int 배열
2) 규칙
- 1번 사람에게 사탕 1개를 준다.
- 2번 사람에게는 2개를 준다.
- 3번 사람에게는 3개를 준다.
- n번 사람에게 n개 주고 나서 사탕이 남는다면, 다시 1번부터 n+1개를, 2번에게 n+2개를 준다.
3. Constraint
1) 1 <= candies <= 10^9
2) 1 <= num_people <= 1000
4. Example
Input: candies = 10, num_people = 3 -> Output: [5,2,3]
설명: 3명이므로 반환할 배열의 길이도 3이다.
- 초기 세팅 -> [0,0,0], candies=10
- 1번에게 1개 -> [1,0,0], candies=9
- 2번에게 2개 -> [1,2,0], candies=7
- 3번에게 3개 -> [1,2,3], candies=4
- 1번에게 4개 -> [5,2,3], candies=0
- candies==0이므로 [5,2,3]을 반환한다.
5. Code
1) 첫 코드(2022/07/28)
int[] p = new int[num_people];
int left = candies, i = 0, c = 1;
while(left>0){
if(left>=c){
left -= c;
p[i%num_people] += c++;
}else{
p[i%num_people] += left;
break;
}
i++;
}
return p;
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[LeetCode/Easy] 1137. N-th Tribonacci Number (0) | 2022.12.20 |
---|---|
[LeetCode/Easy] 1108. Defanging an IP Address (0) | 2022.12.20 |
[LeetCode/Easy] 1089. Duplicate Zeros (0) | 2022.12.20 |
[LeetCode/Easy] 1078. Occurrences After Bigram (0) | 2022.12.16 |
[LeetCode/Easy] 1051. Height Checker (0) | 2022.12.16 |