728x90
순차탐색
- 리스트 안에 있는 특정한 데이터를 찾기 위해서 앞에서부터 데이터를 하나씩 확인하는 방법
이진탐색
- 정렬되어있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법
- 시작점, 끝점, 중간점 을 이용하여 탐색 범위 설정
파이썬에는 이진탐색 라이브러리가 잘 되어있다.!!
이를 활용하여 문제를 풀면 개꿀~~😛
bisect_left(a,x)
정렬된 순서를 유지하면서 배열 a에 x를 삽입할 가장 왼쪽 인덱스를 반환
bisect_right(a,x)
정렬된 순서를 유지하면서 배열 a에 x를 삽입할 가장 오른쪽 인덱스를 반환
이진탐색을 이용한 문제 유형
- 파라메트릭 서치 : 최적화 문제를 결정문제(예, 아니오)로 바꾸어 해결하는 기법.
예를들면, 특정한 조건을 만족하는 가장 알맞은 값을 빠르게 찾는 최적화 문제
일반적으로 코딩테스트에서 파라메트릭 서치 문제는 이진탐색을 이용하여 해결할 수 있다.
'알고리즘 (JAVA)' 카테고리의 다른 글
[python] 코딩테스트를 위한 파이썬 문법 정리 - 개발자 배찌 (0) | 2022.11.27 |
---|---|
[코테준비 python] 유클리드 호제법, 재귀함수 - 개발자 배찌 (1) | 2022.11.03 |
[코테준비 python] 스택, 큐 자료구조 - 개발자 배찌 (0) | 2022.11.03 |
[코테준비 python] 그리디알고리즘, 구현 알고리즘 - 개발자 배찌 (0) | 2022.11.02 |
[프로그래머스] level1.완주하지 못한 선수 - 개발자 배찌 (0) | 2022.06.08 |