본문 바로가기

programmers 알고리즘/구현

42627번: 디스크컨트롤러 (힙)

programmers.co.kr/learn/courses/30/lessons/42627/solution_groups?language=python3

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

def solution(jobs):
    answer = 0
    time = 0  # 현재까지 진행된 작업 시간
    length = len(jobs)

    jobs = sorted(jobs, key=lambda x: x[1])  # 소요시간 우선 정렬

    while len(jobs) != 0:
        for i in range(len(jobs)):
            if jobs[i][0] <= time:
                time += jobs[i][1]
                answer += time - jobs[i][0]
                jobs.pop(i)
                break
            # 해당시점에 아직 작업이 들어오지 않았으면 시간 ++
            if i == len(jobs) - 1:
                time += 1


return answer // length


res = solution([[0, 3], [1, 9], [2, 6]])
print(res)

'programmers 알고리즘 > 구현' 카테고리의 다른 글

42626번: 더 맵게 (힙)  (0) 2020.11.04
42587번: 프린터  (0) 2020.11.04
42583번: 다리를 지나는 트럭  (0) 2020.11.04
기능개발 (스택/큐)  (0) 2020.11.04
주식가격 (스택/큐)  (0) 2020.11.03