문제
https://school.programmers.co.kr/learn/courses/30/lessons/42627
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
import java.util.*;
class Solution {
public int solution(int[][] jobs) {
PriorityQueue<int []> pq = new PriorityQueue<>((o1, o2)->o1[1] - o2[1]);
Arrays.sort(jobs, (o1, o2)->o1[0] - o2[0]);
int answer = 0;
int time = 0;
int idx = 0;
while (idx < jobs.length || !pq.isEmpty()) {
while (idx < jobs.length && jobs[idx][0] <= time)
pq.offer(jobs[idx++]);
if (pq.isEmpty())
time = jobs[idx][0];
else {
int[] job = pq.poll();
answer += time - job[0] + job[1];
time += job[1];
}
}
return answer/jobs.length;
}
}