[ BOJ / Python ] 16564번 히오스 프로게이머

황승환·2021년 9월 2일
1

Python

목록 보기
2/498

이번 문제는 이미 C++로 구현한 문제이다. 파이썬 연습을 위해 파이썬으로 다시 작성해보았다. 이분탐색을 이용한 문제이다.

def count(li, m):
    t = 0
    for n in li:
        if n >= m:
            break
        t += m-n
    return t

N, K = map(int, input().split())
li = sorted([int(input()) for _ in range(N)])
s, e = min(li), max(li)+K
res = 0
while s <= e:
    m = (s+e)//2
    if count(li, m) <= K:
        res = m
        s = m+1
    else:
        e = m-1
print(res)

profile
꾸준함을 꿈꾸는 SW 전공 학부생의 개발 일기

0개의 댓글