https://www.acmicpc.net/problem/2512
import sys
input = sys.stdin.readline
n = int(input())
nint = list(map(int, input().split()))
m = int(input())
L, H = 0, max(nint)
while L <= H:
mid = (L + H) // 2
num = 0
for i in nint:
if i >= Mid: num += Mid
else: num += i
if num <= m: L = Mid + 1
else: H = Mid - 1
print(H)
https://www.acmicpc.net/problem/17266
def bs(lights, m):
if lights[1]-lights[0] > m:
return 0
if lights[-1]-lights[-2] > m:
return 0
for i in range(1, len(lights)-2):
if (lights[i+1]-lights[i])/2 > m:
return 0
return 1
n, m = int(input()), int(input())
lights = [0] + list(map(int, input().split())) + [n]
s, e = 0, n
res = 0
while s <= e:
m = (s+e)//2
if bs(lights, M):
e = M-1
res = M
else:
s = M+1
print(res)
https://www.acmicpc.net/problem/2613
시간이 너무 많이 걸려서 오늘은 여기까지..😓
안녕하세요, 김덕우입니다! 이진 탐색 저도 은근 시간이 많이 걸리더라고요 이해하는데에도 시간이 많이 걸리는,, 오늘도 수고하셨습니다!!