오늘은 여기까지

[백준] 이상한 술집 - 파이썬 Python 본문

Problem Solving

[백준] 이상한 술집 - 파이썬 Python

dev-99 2024. 9. 29. 19:37

https://www.acmicpc.net/problem/13702

개념: 이분탐색

 

막걸리 양을 조절해가면서 막걸리를 K번 나눠줄 수 있는 최대값을 찾는 과정이다. 

 

따라서 이분탐색으로 풀면 될 것이라고 생각했고, 막걸리를 K번 이상 나눠줄 수 있으면 mid값을 증가 시켜서 더 큰 값이 있는지 찾고 아니라면 mid값을 감소 시킨다.

N, K = map(int, input().split())
mliter = []

for _ in range(N):
    mliter.append(int(input()))
mliter.sort()

start = 1
end = max(mliter)

while start<=end:
    mid = (start+end) // 2
    cnt = 0
    
    for i in mliter:
        cnt += i // mid
    
    #print(start, mid, end, cnt)
    
    if cnt >= K:
        result = mid
        start = mid + 1
        
    else:
        end = mid - 1

print(result)