Programmers
[python] 디스크 컨트롤러
by DylanMsK
2019. 10. 13.
문제 출처
디스크 컨트롤러
풀이
def solution(jobs):
num_jobs = len(jobs)
answer = 0
jobs.sort(key=lambda x: (x[0], x[1]))
start, time = jobs.pop(0)
end = time+start
answer += time
while jobs:
nxt_idx = 0
for idx in range(1, len(jobs)):
if jobs[idx][0] > end:
break
else:
if jobs[idx][1] < jobs[nxt_idx][1]:
nxt_idx = idx
nxt = jobs.pop(nxt_idx)
if nxt[0] <= end:
answer += nxt[1] + (end - nxt[0])
end += nxt[1]
else:
answer += nxt[1]
end = sum(nxt)
return answer // num_jobs