알고리즘/[python] 백준 BOJ
[python] 백준 1477 휴게소 세우기
Alan_Kim
2023. 4. 25. 12:25
728x90
반응형
https://www.acmicpc.net/problem/1477
1477번: 휴게소 세우기
첫째 줄에 현재 휴게소의 개수 N, 더 지으려고 하는 휴게소의 개수 M, 고속도로의 길이 L이 주어진다. 둘째 줄에 현재 휴게소의 위치가 공백을 사이에 두고 주어진다.
www.acmicpc.net
문제 해결
- 전형적인 휴개소를 짓고 난 후의 휴게소가 없는 구간의 최댓값의 최솟값을 이분탐색으로 찾는 문제
- 길이를 조절해가며 대입했을 때 알맞은 길이를 찾는 문제이다.
CODE
n,m,l = map(int, input().split())
A = [0]+list(map(int, input().split()))+[l]
A.sort()
start = 1
end = l-1
answer = 0
while start <= end:
cnt = 0
mid = (start+end)//2
for i in range(1,len(A)):
if A[i] - A[i-1] > mid:
cnt += (A[i]-A[i-1]-1)//mid
if cnt >m:
start = mid + 1
else:
end = mid -1
answer = mid
print(answer)
728x90
반응형