728x90

import java.util.*;
class Solution {
    public int[] solution(int[] progresses, int[] speeds) {
        Queue<Integer> days = new LinkedList<>();
        Queue<Integer> resultQ = new LinkedList<>();
        int j = 0;
        for(int speed : speeds){
            int day = 0;
            int progress = progresses[j];
            while(progress < 100){
                day++;
                progress += speed;
            }
            days.offer(day);
            j++;
        }
        int temp = days.poll();
        int result = 1;
        while(!days.isEmpty()){
            int qPeek = days.poll();
            if(temp >= qPeek) {
                result++;
            }else {
                resultQ.offer(result);
                result = 1;
                temp = qPeek;
            }
        }
        int i = 0;
        resultQ.offer(result);
        int[] answer = new int[resultQ.size()];
        while(!resultQ.isEmpty()) {
        answer[i] = resultQ.poll();
        i++;
        }
        return answer;
    }
}

[주의점]

1. Queue -> offer(), poll() 기억하기 / Stack -> push(), pop()

cf) peek()은 제거x 

2. < , 조건 잘 천천히 꼼꼼하게 확인하기 - 코테에선 디버깅 기능이 안되니까

 

728x90

+ Recent posts