이분탐색입니다.
import sys
input = sys.stdin.readline
def isPossible(length):
cnt = 0
for pa in pas:
cnt += pa//length
if cnt >= C:
return True
return False
S, C = map(int, input().split())
pas = [int(input()) for _ in range(S)]
start = 1
end = max(pas)
answer = (start+end)//2
while start <= end:
mid = (start+end)//2
if isPossible(mid):
start = mid+1
answer = mid
else:
end = mid-1
rest = sum(pas) - answer*C
print(rest)
'practivceAlgorithm > 백준' 카테고리의 다른 글
[백준][Python] 16988 바둑2 (0) | 2021.08.16 |
---|---|
[백준][Python] 11569 민준이의 계략 (1) | 2021.08.15 |
[백준][Python] 15723 n단 논법 (0) | 2021.08.12 |
[백준][Python] 11265 끝나지 않는 파티 (0) | 2021.08.12 |
[백준][Python] 9372 상근이의 여행 (0) | 2021.08.12 |