본문 바로가기
코딩 테스트/그리디

무지네 먹방 라이브

by hazel_ 2021. 1. 17.

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

댓글