Programmers

[python] 디스크 컨트롤러

DylanMsK 2019. 10. 13. 12:18

문제 출처

디스크 컨트롤러

 

풀이


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