디스크 컨트롤러 (파이썬)

728x90
반응형

c++에서 파이썬으로 바꾸는 중인데 c++보다 쉽다고 생각하다가도 가끔 잘 안되는 부분은 어렵다

풀이

: 바로 실행할 수 있는 일들을 우선순위큐에 넣어주고 없으면 현재 시간을 1씩 증가시킨다

import heapq
def solution(jobs):
    answer = 0
    count,last,answer=0,-1,0
    heap=[]
    jobs.sort()
    time=jobs[0][0]
    
    while count<len(jobs):
        for s,t in jobs:
            if last<s<=time: # 바로 실행가능한 애들만 우선순위큐에 집어넣는다 
                heapq.heappush(heap,(t,s))
        if len(heap)>0: # 지금 실행가능한 일이 있다면 
            count+=1
            last=time
            dur,start=heapq.heappop(heap)
            time+=dur
            answer+=(time-start)
        else:
            time+=1
                
    return answer//len(jobs)
728x90
반응형
TAGS.

Comments