bisect이진탐색(binary search)일 때 유용하게 사용 가능하다

 

이진탐색이란 간단하게 정렬되어 있는 배열내에서 특정 값을 찾아내는 것이다.

 

[1, 2, 3, 3, 3, 3, 4, 5, 6]

위와 같이 정렬된 배열이 존재할 때 3 의 갯수를 구하고 싶으면 bisect를 활용하면 된다.

def count_by_sorted_array(array, left_value, right_value):
    right_index = bisect_right(array, right_value)
    left_index = bisect_left(array, left_value)
    return right_index - left_index

bisect_left(literable, value) : 왼쪽 인덱스를 구하기

bisect_right(literable, value) : 오른쪽 인덱스를 구하기

 

bisect_left 를 활용해 3이 시작하는 index 와 bisect_right 를 활용해 3 이 끝나는 지점의 index 를 구할 수 있다.

'Development > Algorithm' 카테고리의 다른 글

[Python] 기초 알고리즘 팀 노트 정리  (0) 2022.02.10
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기