반응형
이분탐색 ? 정렬이 보장되어있는 배열에서, 이분을 하면서 탐색하는기법
이분탐색은 전형적인 변수 세팅을 사용한다.
왼쪽, 오른쪽의 포인터 두개를 가지고 시작한다.
항상 가운데의 인덱스를 보고, 해당 인덱스와 , 타겟을 비교하고, 해당 비교를 통해 포인터 L 혹은 R을 비교하면서 포인터를 이동시킨다.
https://www.acmicpc.net/problem/7795
7795번: 먹을 것인가 먹힐 것인가
심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을
www.acmicpc.net
이분탐색에 대한 예제이다.
쉽게말하면, 한 집합을 정렬, 그리고 한집합을 하나씩 가져와서 값을 비교한다.
값이 만약에 크다면 left를 옮겨서 더 큰 index를 체크하고, 아니라면 right를 옮기면서, maxindex를 찾는다.
코테에서 탐색, 이분탐색에 대한 고민은 시간제한을 체크한다.
경우의 수가 1억 = 1초인것을 감안하여, 최대 경우의 수를 시간초과에 비교하면서 생각하고 풀어야 한다.
반응형
'Algorithm > [Binary Search]' 카테고리의 다른 글
[Binary Search] 백준 1920 (0) | 2021.11.18 |
---|---|
[Binary Search] 백준 2110 풀이 (0) | 2021.11.18 |
[Binary Search]백준-2343 (0) | 2021.11.18 |
[Binary Search] 백준 2512 (0) | 2021.11.11 |
[Binary Search] 백준 - 2805 (0) | 2021.11.11 |