백준 문제 링크
악덕 사장
- 아래 그림을 참고하면 된다.
- 그니까 최대 k는 k, 2k, 3k순으로 늘어나므로 그렇게 확인하면 된다.
N = int(input())
array = list(map(int, input().split()))
start = 1
end = max(array)
array.sort()
result = 0
while start <= end:
mid = (start + end) // 2
time = 0
for i in range(len(array)):
if array[i] >= mid * (i+1):
time += 1
else:
break
if time < N:
end = mid - 1
else:
start = mid + 1
result = mid
print(result)