-Code
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
mak = [int(input()) for _ in range(n)]
left, right = 1, max(mak)
result = 0
while left <= right:
mid = (left + right) // 2
cnt = sum([i // mid for i in mak])
if cnt >= m:
result = mid
left = mid + 1
else:
right = mid - 1
print(result)
이전 문제와 비슷하나 최소값을 0으로 하면 제로디바이드 오류가 생깁니다. 그래서 문제를 찾은 후 해당 부분을 해결하였습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 2792번 보석 상자 (0) | 2022.05.20 |
---|---|
[백준/파이썬] 13702번 파닭파닭 (0) | 2022.05.19 |
[백준/파이썬] 16401번 과자 나눠주기 (0) | 2022.05.19 |
[백준/파이썬] 16960번 스위치와 램프 (0) | 2022.05.19 |
[백준/파이썬] 19637번 IF문 좀 대신 써줘 (0) | 2022.05.19 |