def bin_search(a, key):
"""시퀀스 a에서 key와 일치하는 원소를 이진 검색"""
pl = 0
pr = len(a) - 1
while True:
pc = (pl + pr) // 2
if a[pc] == key:
return pc
elif a[pc] < key:
pl = pc + 1
else:
pr = pc - 1
if pl > pr:
break
return -1
from bisect import bisect_left, bisect_right
import bisect
a = [1, 2, 3, 3, 5, 10]
x = 3
print(f"bisect_left: {bisect_left(a, x)}")
print(f"bisect_right: {bisect_right(a, x)}")
def cnt_within_range (arr, left_v, right_v):
left_idx = bisect_left(arr, left_v)
right_idx = bisect_right(arr, right_v)
return right_idx - left_idx
arr = [5, 6, 7, 7, 7, 7, 8, 8, 9, 10]
print(cnt_within_range(arr, 9, 9))
print(cnt_within_range(arr, 4, 7))
"""
a = [60, 70, 80, 90]
bisect.insort(a, 85)
[60, 70, 80, 85, 90]
"""