https://www.acmicpc.net/problem/1654
a,b = map(int,input().split())
arr = []
for i in range(a):
z = int(input())
arr.append(z)
start,end = 1,max(arr)
while start<= end:
mid = (start + end) // 2
sums = 0
for i in arr:
if i >= mid:
sums = sums + (i // mid)
if b > sums:
end = mid - 1
else:
start = mid + 1
print(end)
이분법을 조금 넓게 수행해야하는 문제이다.
'알고리즘' 카테고리의 다른 글
백준)부녀회장이 될테야 (0) | 2023.02.23 |
---|---|
*백준)공유기 설치 (0) | 2023.02.22 |
백준) 나이트의 이동 (0) | 2023.02.21 |
백준) 나이트의 이동 (0) | 2023.02.21 |
백준) 숫자판 점프 (0) | 2023.02.21 |