https://programmers.co.kr/learn/courses/30/lessons/42627
처리한 작업 수(count), 최근 작업이 끝난 시간(last), 작업시간(time)
우선순위 큐를 활용하였다. heap에 삽입할 때는 작업의 소요시간을 기준으로 최소힙이 될 수 있도록 하였다.
def solution(jobs):
import heapq
heap=[]
jobs.sort()
count,last,result=0,-1,0
time=jobs[0][0]
while count<len(jobs):
for i in jobs:
s,t=i
if last<s<=time:
heapq.heappush(heap, (t,s))
if len(heap)>0:
count+=1
value,start=heapq.heappop(heap)
last=time
time+=value
result+=(time-start)
else:
time+=1
return result//len(jobs)