본문 바로가기
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
    

'Programmers' 카테고리의 다른 글

[python] 등굣길  (0) 2019.10.14
[python] 이중우선순위큐  (0) 2019.10.14
[python] 문자열 압축  (0) 2019.10.06
[python] 타일 장식물  (0) 2019.09.18
[python] 정수 삼각형  (0) 2019.09.18