๐๏ธ Algorithm/๐ฉ ๋ฐฑ์ค
๐ฉ [๋ฐฑ์ค] [Python] [Gold4] 2110๋ฒ_๊ณต์ ๊ธฐ ์ค์น
Dbswnstjd
2023. 2. 21. 23:40
๋ฌธ์
https://www.acmicpc.net/problem/2110
2110๋ฒ: ๊ณต์ ๊ธฐ ์ค์น
์ฒซ์งธ ์ค์ ์ง์ ๊ฐ์ N (2 ≤ N ≤ 200,000)๊ณผ ๊ณต์ ๊ธฐ์ ๊ฐ์ C (2 ≤ C ≤ N)์ด ํ๋ ์ด์์ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ์ง์ ์ขํ๋ฅผ ๋ํ๋ด๋ xi (0 ≤ xi ≤ 1,000,000,000)๊ฐ
www.acmicpc.net
ํ์ด
# ๋ฐฑ์ค 2110๋ฒ ๋ฌธ์ - ๊ณต์ ๊ธฐ ์ค์น
import sys
input = sys.stdin.readline
n, c = map(int, input().split())
x = []
for i in range(n):
x.append(int(input()))
x.sort()
def binary_search(x, start, end):
while start <= end:
mid = (start+end) // 2
cur = x[0]
cnt = 1
for i in range(1, len(x)):
if x[i] >= cur + mid:
cnt += 1
cur = x[i]
if cnt >= c:
global answer
start = mid + 1
answer = mid
else:
end = mid - 1
start = 1
end = x[-1] - x[0]
answer = 0
binary_search(x, start, end)
print(answer)
์ฃผ์ํด์ผ ํ ์ ์ sys๋ชจ๋์ ์ฌ์ฉํ์ง ์์ผ๋ฉด Python3 ์์ ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ์ํ์๋ค.