출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
핵심 개념
<1> Heap 힙 사용
<2>
팁
그림 설명
Code
from heapq import heappush, heappop
def solution(food_times, k):
hq = []
turn_stack = 0; pre_k = last_omit = None
for i in range(len(food_times)):
heappush(hq, [food_times[i], i+1] )
while hq and k >= 0:
omit = heappop(hq)
pre_k = k
turns = omit[0] - turn_stack
k -= (len(hq)+1) * turns
turn_stack += turns
last_omit = omit[1]
if k < 0:
left_foods = sorted( [x[1] for x in hq] + [last_omit] )
move = pre_k % len(left_foods)
return left_foods[move]
else: return -1