가오리의 코딩일기
A. 그리디 - 10. 무지의 먹방 라이브 본문
def solution(food_times, k):
low, high = 0, 100000000
n, cutting, idx = len(food_times), 0, 0
while low <= high:
mid = (low+high) //2
v = n * mid
for f in food_times:
tmp = f-mid
if tmp < 0:
v += tmp
if v <=k:
cutting, idx = mid, v
low = mid + 1
else:
high = mid - 1
food_times = [f-cutting for f in food_times]
for i in range(n):
if food_times[i]> 0 and idx == k:
return i+1
else:
if food_times[i] > 0:
idx += 1
return -1
'Python > 프로그래머스' 카테고리의 다른 글
[12954] x만큼 간격이 있는 n개의 숫자 (0) | 2022.07.10 |
---|---|
[12903] 가운데 글자 가져오기 (0) | 2022.07.02 |
[12917] 문자열 내림차순으로 배치하기 (0) | 2022.07.01 |
[12922] 수박수박수박수박수박수? (0) | 2022.06.30 |
[12937] 짝수와 홀수 (0) | 2022.06.20 |