작업들의 수행시간과 시작가능 시점을 입력받고 모든 작업을 마쳤을 때 평균 작업시간(요청시간부터 종료시간까지)이 가장 작은 방식으로 작업을 했을 때 나오는 평균 작업시간을 구하는 문제입니다.
import heapq
def solution(jobs):
answer = 0
time = 0
lenJobs=len(jobs)
heapq.heapify(jobs)
arr=[]
while jobs:
while jobs:
if time < jobs[0][0]:
break
else:
job=heapq.heappop(jobs)
heapq.heappush(arr, [job[1], job[0]])
if not arr:
time=jobs[0][0]
continue
job = heapq.heappop(arr)
time+=job[0]
answer+=time-job[1]
while arr:
job=heapq.heappop(arr)
heapq.heappush(jobs,[job[1], job[0]])
return answer//lenJobs