https://www.acmicpc.net/problem/17266
17266번: 어두운 굴다리
인하대학교 후문 뒤쪽에는 어두운 굴다리가 있다. 겁쟁이 상빈이는 길이 조금이라도 어둡다면 가지 않는다. 따라서 굴다리로 가면 최단거리로 집까지 갈수 있지만, 굴다리는 어둡기 때문에 빙
www.acmicpc.net
import sys
input = sys.stdin.readline
n = int(input()) # 굴다리의 길이
m = int(input()) # 가로등의 개수
L = list(map(int,input().split())) # 설치 가능한 가로등의 위치
start, end = 0, n # 이분 탐색을 위한 시작점과 끝점
ans = n # 최소 높이의 최대값으로 초기화
while start <= end:
mid = (start + end) // 2 # 중간값을 이용하여 가로등 높이를 결정
if L[0] - mid <= 0 and L[-1] + mid >= n: # 굴다리 양 끝을 비추는지 체크
isCovered = True
else:
isCovered = False
for i in range(1, m):
if L[i - 1] + mid < L[i] - mid: # 가로등 사이의 어두운 구간이 있는지 체크
isCovered = False
break
if isCovered: # 전체 굴다리를 비출 수 있다면, 높이를 줄여본다
ans = min(ans, mid)
end = mid - 1
else: # 비출 수 없다면, 높이를 높여야 한다
start = mid + 1
print(ans)
'백준' 카테고리의 다른 글
백준 20920. 영단어 암기는 괴로워 (0) | 2024.04.14 |
---|---|
백준 13305. 주유소 (0) | 2024.04.13 |
백준 11098. 첼시를 도와줘! (0) | 2024.04.05 |
백준 2869. 달팽이는 올라가고 싶다 (0) | 2024.04.05 |
백준 9017. 크로스 컨트리 (0) | 2024.03.31 |