https://school.programmers.co.kr/learn/courses/30/lessons/42627?language=python3#
import heapq
def solution(jobs):
answer, time = 0, 0
total_jobs = len(jobs)
while len(jobs) > 0:
ready_queue = sorted([job for job in jobs if job[0] <= time], key=lambda x:x[1])
if len(ready_queue) == 0:
time += 1
continue
job = ready_queue[0]
time += job[1]
answer += time - job[0]
jobs.remove(job)
return answer // total_jobs
대기시간의 평균을 최소화하기 위해서는 현재 작업할 수 있는 목록 중 소요시간이 가장 적은 것들을 뽑아서 처리하면 된다.
따라서, 현재 작업할 수 있는 job들을 ready_queue 넣고, 해당 리스트를 소요시간을 기준으로 정렬하여 가장 소요시간이 적은 요소를 구하였다.