Tiny Bunny
본문 바로가기

programmers

프로그래머스 3단계 : 디스크 컨트롤러 (Java 자바)

728x90

 

class Solution {
    public int solution(int[][] jobs) {
        int size = jobs.length;
        int totTime = 0;

        Arrays.sort(jobs, (Comparator.comparingInt(o -> o[0])));
        PriorityQueue<int[]> queue = new PriorityQueue<>(Comparator.comparingInt(o -> o[1]));

        int i = 0;
        int curTime = 0;
        while (size > 0) {
            while (i < jobs.length && jobs[i][0] <= curTime) {
                queue.offer(jobs[i++]);
            }

            if (queue.isEmpty()) {
                curTime = jobs[i][0];
            } else {
                int[] request = queue.poll();
                totTime += curTime - request[0] + request[1];
                curTime += request[1];
                size--;
            }

        }
        return (int) Math.floor(totTime/jobs.length);
    }
}
728x90