프로그래밍/알고리즘
매개변수 탐색
Mt.Hwang
2025. 4. 10. 15:48
* 매개변수 탐색 (Parametric Search)
조건을 만족하는 최대값 혹은 최소값을 이분탐색을 찾을 때 사용
주어진 문제를 결정 문제로 바꾸고, 결정 문제의 조건을 만족하는 최적의 값 탐색
..~~~~..
* 결정 문제
조건에 대한 답이 yes or no인 문제
..~~~~~..
* 매개변수 탐색 조건
1. 결정 문제로 바꿀 수 있어야 함 // 조건 검사 함수 check()
2. 탐색 대상은 배열이 아니라 범위여야 함
3. low, high를 범위로 잡고 mid에 대해 조건을 만족하는지 확인 // if(check(mid))
ex)
이진 탐색을 하면서 최대값인 mid 값을 찾을 때
if (check()) -> 최대값을 찾는 탐색 실행
if (check() != true) -> 왼쪽으로 탐색
..~~~~~..
* 매개변수 탐색에서의 루프
int low = 최소값
int max = 최대값
while (low <= max) {
int mid = (low+high)/2
if (check())
low = mid + 1
else
high = mid - 1
..~~~~~..