Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
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
Archives
Today
Total
관리 메뉴

csct3434

[level 3] 디스크 컨트롤러 - 42627 본문

프로그래머스

[level 3] 디스크 컨트롤러 - 42627

csct3434 2024. 3. 17. 15:53

문제 링크

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

import java.util.*;

class Solution {
    public int solution(int[][] jobs) {
        int answer = 0;
        int time = 0, idx = 0, completed = 0;
        PriorityQueue<int[]> pq = new PriorityQueue<>(Comparator.comparingInt(a -> a[1]));
        
        Arrays.sort(jobs, Comparator.comparingInt(a -> a[0]));
        
        while(completed < jobs.length) {
            while(idx < jobs.length && jobs[idx][0] <= time) {
                pq.add(jobs[idx++]);
            }
            
            if(pq.isEmpty()) {
                time++;
            } else {                
                int[] job = pq.poll();
                answer += time - job[0] + job[1];
                time += job[1];
                completed++;
            }
        }
        
        return answer / jobs.length;
    }
}