def solution(k,n, arr):
high = arr[0]
low = 0
result = 0
while low <= high:
mid = (high + low) // 2
cnt = 0
if mid == 0: return 1
for val in arr:
cnt += val//mid
if cnt >= n and mid > result:
result = mid
break
if cnt < n:
high = mid - 1
else:
low = mid + 1
return result
if __name__ == "__main__":
K, N = map(int,input().split())
arr = []
for _ in range(K):
arr.append(int(input()))
arr.sort(reverse = True)
print(solution(K, N, arr))
'Programming > Algorithm' 카테고리의 다른 글
백준 #2022 - 사다리 (python3) (0) | 2019.11.17 |
---|---|
백준 #2805 - 나무 자르기 (python3) (0) | 2019.11.17 |
백준 #1890 - 점프 (0) | 2019.11.09 |
백준 #2579 - 계단 오르기 (0) | 2019.11.09 |
백준 #1476 - 날짜 계산 (0) | 2019.11.09 |