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
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 10953번 A + B - 6(python) (0) | 2021.01.28 |
---|---|
백준 알고리즘 1654번 랜선 자르기(python) (0) | 2021.01.28 |
백준 알고리즘 1764번 듣보잡(python) (0) | 2021.01.28 |
백준 알고리즘 10816번 숫자 카드 2(python) (0) | 2021.01.28 |
백준 알고리즘 10815번 숫자 카드(python) (0) | 2021.01.28 |