[항해99 취업 리부트 코스 학습일지] 이진탐색 조건 기준에 대해서 여쭤봤습니다.

이강혁·2024년 4월 5일
0

항해99

목록 보기
11/13

이진탐색을 할 때 조건의 기준이 문제마다 다른 것 같아서 멘토님께 여쭤봤다.

글로벌 변수로 answer를 하나 만들어서 특정 조건에서 정답이 될 수 있는 값이 업데이트되면 그거를 answer에 반영해주기.

ex)
if total >= c:
    start = mid + 1
else:
    end = mid - 1

이렇게 조건을 줘야할 때하고

if total ≤ c:
    end = mid - 1
else:
    start = mid + 1

저 조건은 문제 조건마다 다르지만 answer를 업데이트하는 방법은 대부분 무난하게 풀릴 수 있음. 그래서 answer만 출력하기.
answer는 조건에 따라 min, max 등 비교해서 업데이트하라고 하셨다.
그리고 다른 조언

# 1. 조건이 만족하는 경우의 범위를 좁혀갈 때
- 목표 값보다 크거나 같은 최소값을 찾는 경우 : start = mid + 1
- 목표 값보다 작거나 같은 최대값을 찾는 경우 : end = mid - 1

# 2. 조건이 만족하지 않는 경우의 범위를 좁혀갈 때
- 목표 값보다 작아야 하는 조건 : end = mid - 1
- 목표 값보다 커야 하는 조건 : start = mid + 1

아직은 잘 이해 안 가지만 문제를 풀면서 생각을 해봐야겠다.

profile
사용자불량

0개의 댓글