이진탐색을 활용해 문제를 풀어준다. 이때 count()함수를 따로 만들어 생기는 전선의 갯수를 리턴하고 가장 큰 라인의 절반 값부터 1씩 줄어들게 만들어 값을 구한다
import sys
n, k = map(int, sys.stdin.readline().split())
lines = [int(sys.stdin.readline()) for _ in range(n)]
def count(lines, target):
count = 0
for i in lines:
count+= i // target
return count
def ejin(lines, t_c):
start, end = 1, max(lines)
result = 0
while start <= end:
mid = (start + end) // 2
if count(lines, mid) >= t_c:
result = mid
start = mid + 1
else: end = mid-1
return result
print(ejin(lines, k))