lower bound : 데이터 내에서 특정 값보다 같거나 큰 값이 처음 나오는 위치 탐색 가능
upper bound : 데이터 내에서 특정 값보다 처음으로 큰 값이 나오는 위치 탐색 가능
def lower_bound(goal):
start = 0
end = n
while (start < end):
mid = (start + end) // 2
if goal <= arr[mid]:
end = mid
else:
start = mid + 1
return start
def upper_bound(goal):
start = 0
end = n
while (start < end):
mid = (start + end) // 2
if goal >= arr[mid]:
start = mid
else:
end = mid + 1
return start