🔗https://programmers.co.kr/learn/courses/30/lessons/42627
jobs
배열을 돌면서 현재의 시간을 알려주는 time
보다 이전에 요청되어진 작업이 있는지 검사한다. q
에 넣어준다. 첫번째 요소를 job[1]
해줌으로써 소요시간이 우선이 되게 해준다.q
에 들어가진 상태대로 작업을 수행한다. import heapq
def solution(jobs):
timeList=[]
q=[]
time=0
start=-1
complete=0 #완료된 작업의 수
jobs.sort()
while complete<len(jobs):
for job in jobs[complete:]:
if start<job[0]<=time:
heapq.heappush(q,(job[1],job[0]))
if q:
work=heapq.heappop(q)
start=time
time+=work[0]
timeList.append(time-work[1])
complete+=1
else: #요청된 작업이 없을 경우 넘어간다.
time+=1
return int(sum(timeList)/len(timeList))