디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

오늘의 릿코드 1834번 - Single-Threded CPU

개발뉴비갤로그로 이동합니다. 2022.12.29 19:54:59
조회 62 추천 1 댓글 0
														


class Solution:

def getOrder(self, tasks: List[List[int]]) -> List[int]:
start_q = [tasks[i] + [i] for i in range(len(tasks))]
heapify(start_q)
start, time, idx = heappop(start_q)
time_q = [[time, idx, start]]
ans = []
cur = start
while len(time_q):
time, idx, start = heappop(time_q)
cur = cur + time
ans.append(idx)
while len(start_q) and start_q[0][0] <= cur:
start, time, idx = heappop(start_q)
heappush(time_q, [time, idx, start])
if len(time_q) == 0 and len(start_q):
start, time, idx = heappop(start_q)
cur = start
heappush(time_q, [time, idx, start])

return ans


일단 시작시간 순으로 정렬한 start_q

그리고 실행시간에 대한 최소 힙인 time_q -> 여기서 순서를 줘서 인덱스도 처리가능


그래서 start_q에서 현재 시간 cur에 실행가능한 애를 time_q로 넣고

time_q에서 짧게 걸리는 애를 답에 넣어주면서 cur를 갱신함

난 종료 조건을 time_q가 비는 걸로 해서 time_q가 비고 start_q가 안 비면 time_q에 넣어주는 예외 처리를 했음

추천 비추천

1

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 2025년 가장 기억에 남는 인터넷 이슈는? 운영자 25/12/22 - -
16 오늘의 릿코드 Detect Capital 개발뉴비갤로그로 이동합니다. 23.01.02 61 1
13 오늘의 릿코드 Word Pattern 개발뉴비갤로그로 이동합니다. 23.01.01 61 0
11 오늘의 릿코드 Unique Path III [1] 개발뉴비갤로그로 이동합니다. 22.12.31 96 0
10 오늘의 릿코드 All Paths From Source to Target 개발뉴비갤로그로 이동합니다. 22.12.30 60 0
9 (공유) … you need 150 군팡갤로그로 이동합니다. 22.12.30 55 1
8 어제의 릿코드 1962번 - Remove Stones 어쩌고 [1] 개발뉴비갤로그로 이동합니다. 22.12.29 77 0
오늘의 릿코드 1834번 - Single-Threded CPU 개발뉴비갤로그로 이동합니다. 22.12.29 62 1
6 Remove Stones to Minimize the Total ㅇㅇ(223.38) 22.12.28 72 1
5 Maximum Bags With Full Capacity of Rocks ㅇㅇ(223.38) 22.12.28 74 1
4 오늘의 릿코드 2279번 개발뉴비갤로그로 이동합니다. 22.12.27 93 0
3 나도 Jump King 개발뉴비갤로그로 이동합니다. 22.12.27 104 1
2 55 jump king [1] ㅇㅇ(223.38) 22.12.26 156 2
1 Welcome [2] 군팡갤로그로 이동합니다. 22.12.26 180 1
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

디시미디어

디시이슈

1/2