알고리즘 풀이/프로그래머스

프로그래머스 - 기능개발 (스택/큐)

배게 2019. 12. 4. 08:04
728x90



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
36
37
38
39
40
    public int[] solution(int[] progresses, int[] speeds) {
 
        ArrayList<Integer> answerList = new ArrayList<>();
        int[] days = new int[progresses.length];
 
        for (int i = 0; i < days.length; i++) {
            days[i] = (100 - progresses[i]) / speeds[i];
            days[i] = ((100 - progresses[i]) % speeds[i] > 0) ? days[i] + 1 : days[i];
 
            // System.out.println(days[i]);
        }
 
        if (days.length == 1)
            return new int[] { 1 };
 
        int i = 1;
        int tempMax = days[0];
        int accum = 1;
 
        while (i < days.length) {
            if (tempMax < days[i]) {
                answerList.add(accum);
                accum = 1;
                tempMax = days[i];
            } else
                accum++;
 
            if (i == days.length - 1)
                answerList.add(accum);
            i++;
        }
 
        int[] answer = new int[answerList.size()];
        for (int j = 0; j < answer.length; j++) {
            answer[j] = answerList.get(j);
            // System.out.println(a);
        }
 
        return answer;
    }
cs