p.316
import heapq
def solution(food_times, k):
table=[]
if sum(food_times) <= k:
return -1
for i in range(len(food_times)):
# 음식 시간, 음식 번호
heapq.heappush(table,(food_times[i],i+1))
sum_value=0 # 다 먹기 위해 사용한 시간
previous=0 # 직전에 다 먹은 음식 시간
length=len(food_times) # 남은 음식의 갯수
while sum_value+((table[0][0]-previous)*length) <= k:
now=heapq.heappop(table)[0]
sum_value+=(now-previous)*length
length-=1
previous=now
result_table=sorted(table,key =lambda x:x[1]) # table안에 있는 것 sort
return result_table[(k-sum_value)%length][1] # 음식 번호 꺼내오기
'코딩 테스트 > 그리디' 카테고리의 다른 글
볼링공 고르기 (0) | 2021.01.16 |
---|---|
만들 수 없는 금액 (0) | 2021.01.16 |
문자열 뒤집기 (0) | 2021.01.16 |
곱하기 혹은 더하기 (0) | 2021.01.16 |
모험가 길드 (0) | 2021.01.16 |
댓글