728x90
반응형

저번에 푼 적이 있는 문제인데 그때도 해답을 봤는데 이번에도 풀지 못해서 해답을 봤다. 이해를 완전히 못했나 보다.

이분 탐색 문제인데 count 함수가 핵심 부분이다. 나는 저 생각을 못해서 못 풀었다. 내일 다시 풀어봐야겠다. 

def count(li, m):
    cnt = 1
    t = li[0]
    for i in range(1, len(li)):
        if t + m <= li[i]:
            t = li[i]
            cnt += 1
    return cnt
          
          
def binarySearch(li, C):
    s, e = 1, max(li)
    while s <= e:
        m = (s + e) // 2
        if count(li, m) >= C:
            ans = m
            s = m + 1
        else:
            e = m - 1
    return ans
    
    
N, C = map(int, input().split())
li = sorted([int(input()) for _ in range(N)])

print(binarySearch(li, C))
728x90
반응형

+ Recent posts