import heapq
def solution(jobs):
# 현재시간, 이전작업종료시간, 큐
time, end, q = 0, -1, []
# 완료된 작업물 수
count = 0
# 리턴값
answer = 0
# 인덱스 에러 방지
while count < len(jobs):
for job in jobs: # 작업물 리스트에서
if end < job[0] <= time: # 작업물요청시간이 이전작업물종료시간과 현재시간 사이면
answer += (time - job[0]) # 현재시간-요청시간을 answer에 더한다
heapq.heappush(q, job[1]) # 소요시간을 큐에 넣는다
if len(q) > 0: # 큐에 작업물이 있으면
answer += len(q) * q[0] # 이번 작업물이 끝날때까지 시간이 나머지 작업물들에게는 대기시간이므로 곱해서 더해준다
end = time # 이전작업물종료시간을 현재시간으로 바꾼다
time += heapq.heappop(q) # 현재시간에 현재 작업물소요시간을 더한다
count += 1 # 완료된 작업물 수를 1 증가시킨다
else:
time += 1 # 작업물이 없으면 1초 추가
return answer // len(jobs)