이진 탐색 : 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법
bisect_left(a,x) => 정렬된 순서를 유지하면서 배열a에 x를 삽입할 가장 왼쪽 인덱스를 봔환
bisect_right(a,x) => 정렬된 순서를 유지하면서 배열a에 x를 삽입할 가장 오른쪽 인덱스를 봔환
from bisect import bisect_left, bisect_right
#값이 left_value, right_value 사이에 있는 데이터의 개수를 반환하는 함수
def count_by_range(a, left_value, right_value):
left_index = bisect_left(a, left_value)
right_index = bisect_right(a, right_value)
return right_index - left_index
최적화 문제를 결정 문제(예, 아니오)로 바꾸어 해결하는 기법