Agorithm/백준 알고리즘
백준 알고리즘 18113번 그르다 김가놈(python)
kimjinho1
2021. 3. 9. 07:28
728x90
반응형
이분 탐색 문제이다. 처음에 e를 max(li)-2*K로 설정하는 허튼짓을 하는 바람에 엄청나게 많이 틀렸다.
s가 0이면 0으로 나눌 경우가 생길 수 있기 때문에 1로 시작해야 된다. PyPy3로 제출해야 통과된다.
import sys
def count(li, m):
t = 0
for n in li:
if n <= K:
continue
elif n < 2*K:
n -= K
else:
n -= 2*K
t += n//m
return t
N, K, M = map(int, sys.stdin.readline().split())
li = [int(sys.stdin.readline()) for _ in range(N)]
s, e = 1, max(li)
res = 0
while s <= e:
m = (s+e)//2
if count(li, m) >= M:
res = m
s = m+1
else:
e = m-1
print(res if res else -1)
728x90
반응형