728x90
알고리즘 문제를 해결하다가 다른 분의 블로그에서 제가 푼 알고리즘 문제를 파이썬에서 제공하는 표준 라이브러리인 bisect를 이용해서 간단하게 문제를 해결한 것을 보고, 요번 기회에 bisect 라이브러리를 정리할려고 한다.
bisect
bisect는 이진 검색 알고리즘을 이용하여 입력 받은 시퀀스를 검색하는 기능을 제공한다.
import bisect
tmp = [1,3,4,5]
bisect.bisect(tmp,2)
bisect_left, bisect_right
bisect는 bisect_right와 동일하며, 이 두 함수는 리스트 a에 x와 동일한 값이 존재하면 해당 값의 뒷 인덱스 값을 반환한다. 하지만 bisect_left는 동일한 값의 인덱스를 반환하다.
import bisect
tmp = [1,3,4,5]
print(bisect.bisect(tmp,2))
# 출력값 :1
print(bisect.bisect_right(tmp,3))
# 출력값 :2
print(bisect.bisect_left(tmp,6))
# 출력값 :4
insort
insort는 정렬된 시퀀스 a에 x값을 삽입한다. insort도 동일하게 insort_right와 insort_left가 존재하며 동작 방식은 bisect와 동일하다.
import bisect
tmp = [1,3,4,5]
bisect.insort(tmp,2)
print(tmp)
# 출력값 :[1,2,3,4,5]
'Language > Python' 카테고리의 다른 글
[Python][백준 5557][DP] 1학년 - 컴도리돌이 (0) | 2022.06.05 |
---|---|
[Python][백준 2887][최소스패닝트리][Union-Find] 행성 터널 - 컴도리돌이 (0) | 2022.06.04 |
[Python][백준 1379,1374][우선순위 큐,정렬] 강의실, 강의실 2 - 컴도리돌이 (0) | 2022.06.02 |
[Python][백준 17836][BFS] 공주님을 구해라! - 컴도리돌이 (0) | 2022.06.01 |
[Softeer][python] 지도 자동 구축 - 컴도리돌이 (0) | 2022.05.31 |