문제

이 문제는 힙을 이용해서 풀면 되는데 heap 을 활용하여 문제를 구현하는 방법을 생각해내는게 어려웠다.
일단 각 작업별로 해당 작업이 요청되는 시점 이후에만 실행이 가능하기 때문에 start 라는 변수를 두어 현재 start 변수 이후에 요청되었고 현재 시점보다 이전에 요청된 작업들에 대해서 heap에 추가 해준다.
그 후 heap 추가된 것들을 탐색하면서 start와 now 를 갱신해주면서 answer 값 또한 갱신해준다.
나의 코드
import heapq
def solution(jobs):
answer = 0
heap = []
start = -1
now = 0
i = 0
while i < len(jobs):
for j in jobs:
if start < j[0] <=now:
heapq.heappush(heap,(j[1],j[0]))
if len(heap) > 0:
cur = heapq.heappop(heap)
start = now
now += cur[0]
i+=1
answer += (now-cur[1])
else:
now += 1
return int(answer/len(jobs))
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] 아이템 줍기 -python (0) | 2024.08.06 |
|---|---|
| [프로그래머스] 단어변환 - python 파이썬 (2) | 2024.08.01 |
| [프로그래머스] N으로 표현 -python 파이썬 (1) | 2024.07.25 |
| [프로그래머스] 더맵게 - python파이썬 (1) | 2024.07.25 |
| [프로그래머스]이중우선순위 큐 - python 파이썬 (5) | 2024.07.22 |