2019 KAKAO BLIND RECRUITMENT無知な食いしん坊生放送py
def solution(food_times, k):
answer = []
food_list = []
key = 0
# 전체 음식을 먹는 시간보다 k가 크거나 같다면 -1
if sum(food_times) <= k:
return -1
for i in range(len(food_times)):
food_list.append([i, food_times[i]])
# 먹는데 걸리는 시간이 짧은 순으로 정렬
food_list = sorted(food_list, key=lambda x:x[1])
# 첫번째 음식은 다먹은 거
k -= food_list[0][1] * len(food_list)
i = 0
eat = 0
while True:
if k-eat < 0:
break
k -= eat
i+=1
eat = (food_list[i][1] - food_list[i-1][1]) * (len(food_list)-i)
food_list = sorted(food_list[i:], key = lambda x:x[0])
return food_list[k%len(food_list)][0]+1
注意事項
len(food_list) - i
のように除外してコードを書く.food_list[i][1] - food_list[i-1][1]
の理由はi-1を食べたためであり、それ以外はkの値を減らすためである.(これにより、food list値を更新せずにfood listの値を計算できますが、food listの値は更新されません.)sorted(food_list[i:])
理由はi-1が食べているのにドアが閉まっているから.Reference
この問題について(2019 KAKAO BLIND RECRUITMENT無知な食いしん坊生放送py), 我々は、より多くの情報をここで見つけました https://velog.io/@kingggyu/2019-KAKAO-BLIND-RECRUITMENT무지의-먹방-라이브.pyテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol