코딩 테스트/문제 풀기

[프로그래머스] 디스크 컨트롤러

hazel_ 2021. 4. 20. 15:50

programmers.co.kr/learn/courses/30/lessons/42627

 

코딩테스트 연습 - 디스크 컨트롤러

하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를

programmers.co.kr

 

import heapq
def solution(jobs):
    answer=0
    time=0
    last_start=-1
    count=0
    q=[]
    jobs.sort()

    while count<len(jobs):
        for i in range(len(jobs)):
            if last_start<jobs[i][0]<=time:
                heapq.heappush(q, [jobs[i][1], jobs[i][0]])
        if len(q)>0:
            count+=1
            now = heapq.heappop(q)
            last_start=time
            time+=now[0]
            answer+=(time-now[1])
        else:
            time+=1

    return int(answer//len(jobs))