알고리즘 (JAVA)

[코테준비 python] - 이진탐색 알고리즘 - 개발자 배찌

개발자 배찌 2022. 11. 10. 17:15
728x90

순차탐색
- 리스트 안에 있는 특정한 데이터를 찾기 위해서 앞에서부터 데이터를 하나씩 확인하는 방법

이진탐색
- 정렬되어있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법
- 시작점, 끝점, 중간점 을 이용하여 탐색 범위 설정



파이썬에는 이진탐색 라이브러리가 잘 되어있다.!!
이를 활용하여 문제를 풀면 개꿀~~😛

bisect_left(a,x)
정렬된 순서를 유지하면서 배열 a에 x를 삽입할 가장 왼쪽 인덱스를 반환

bisect_right(a,x)
정렬된 순서를 유지하면서 배열 a에 x를 삽입할 가장 오른쪽 인덱스를 반환




이진탐색을 이용한 문제 유형
- 파라메트릭 서치 : 최적화 문제를 결정문제(예, 아니오)로 바꾸어 해결하는 기법.
예를들면, 특정한 조건을 만족하는 가장 알맞은 값을 빠르게 찾는 최적화 문제

일반적으로 코딩테스트에서 파라메트릭 서치 문제는 이진탐색을 이용하여 해결할 수 있다.