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
31
32
33
34
35
|
import java.util.*;
class Solution {
public int[] solution(int[] progresses, int[] speeds) {
int[] answer = {};
ArrayList<Integer> pro = new ArrayList<Integer>();
ArrayList<Integer> sp = new ArrayList<Integer>();
ArrayList<Integer> finish = new ArrayList<Integer>();
int i;
for (i = 0; i < progresses.length; i++) {
pro.add(progresses[i]);
sp.add(speeds[i]);
}
while (pro.size() > 0) {
int cnt = 0;
for (i = 0; i < pro.size(); i++) {
pro.set(i, pro.get(i) + sp.get(i));
}
for (i = 0; i < pro.size(); i++) {
if (pro.get(i) >= 100) {
pro.remove(i);
sp.remove(i);
i--; // 제거했으므로 위치 이동
cnt++;
} else // 연속적으로 배포하지 못하면 바로 종료
break;
}
if (cnt != 0) {
finish.add(cnt);
}
}
answer = finish.stream().mapToInt(Integer::intValue).toArray();
return answer;
}
}
|
cs |
앞쪽부터 걸리는 시간을 계산한 후 추가하는 방법도 좋을 것 같다.
'Programmers > Level2' 카테고리의 다른 글
더 맵게 (0) | 2021.07.12 |
---|---|
타겟 넘버 (0) | 2021.07.12 |
카카오프렌즈 컬러링북 (0) | 2021.07.11 |
문자열 압축 (0) | 2021.07.10 |
[1차] 뉴스 클러스터링 (0) | 2021.07.09 |