n , c = list(map(int,input().split(' ')))
array = []
for _ in range(n):
array.append(int(input()))
array = sorted(array)
start = array[1] - array[0]
end = array[-1] - array[0]
while(end - start >= 0):
mid = (start + end) //2
router = array[0]
count =1
for i in range(1,len(array)):
if (array[i] >= router + mid):
router = array[i]
count +=1
if (count >= c):
start = mid +1
result = mid
else:
end = mid -1
print(result)
'[PS] 알고리즘문제풀이' 카테고리의 다른 글
[프로그래머스,PS,스택,큐][PYTHON] #1. 탑 (0) | 2020.05.14 |
---|---|
[프로그래머스,PS,해시][PYTHON] #4.베스트 앨범 (1) | 2020.05.13 |
[프로그래머스,PS,해시][PYTHON] #3.위장 (0) | 2020.05.13 |
[프로그래머스,PS,해시][PYTHON] #2.전화번호 목록 (0) | 2020.05.12 |
[프로그래머스,PS,해시][PYTHON] #1.완주하지 못한 선수 (0) | 2020.05.12 |