본문 바로가기

Programmers/Level2

기능개발

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