이진탐색을 통해 해결하는 방법을 바로 떠올리고 곧장 입력한 뒤 제출 하였으나 계속 검사 80%선에서 Zero Division Error 가 발생하였다. 반례를 혼자 찾기 힘들고 원인이 떠오르지 않아 구글링을 통해 k = 1, n = 1 data = [1] 인 경우 start를 0부터 설정할 시 mid 가 0이 되는 오류를 발견하고 start를 1로 수정하였다.
k, n = map(int, input().split())
data = [int(input()) for _ in range(k)]
data.sort()
start = 1
end = data[-1]
result = 0
while start <= end:
mid = (start + end) // 2
count = 0
for i in data:
count += (i // mid)
if count >= n:
start = mid + 1
result = max(result, mid)
else:
end = mid - 1
print(result)
'로직과의 사투 > Algorithm' 카테고리의 다른 글
코딜리티 Lesson 1, Binary Gap - Java (0) | 2021.05.26 |
---|---|
백준 알고리즘 1946번 신입 사원 - 파이썬 (0) | 2021.05.04 |
백준 알고리즘 1495번 기타리스트 - 파이썬 (0) | 2021.04.30 |
백준 알고리즘 4485번 녹색 옷 입은 애가 젤다지? - 파이썬 (0) | 2021.04.28 |
백준 알고리즘 4963번 섬의 개수 - 파이썬 (0) | 2021.04.27 |