[Binary Search, Easy] Guess Number Higher or Lower

송재호·2025년 4월 2일
0

https://leetcode.com/problems/guess-number-higher-or-lower/description/?envType=study-plan-v2&envId=leetcode-75

이분탐색을 구현하는 가장 심플한 문제로 보인다.
항상 start, end, mid를 기억하자.

다만 mid값을 구할 때는
start + (end - start) / 2를 사용하자
(start + end) / 2를 하면 오버플로우 가능성이 있다.

참고로 마지막 return문은 이론상 닿지 않아야 맞다. 아무거나 리턴해도 되지만 명시적으로 잘못되었다는 값을 주면 더 좋겠다.

public class Solution extends GuessGame {
    public int guessNumber(int n) {

        int start = 1;
        int end = n;

        while (start <= end) {
            int mid = start + (end - start) / 2;
            int compareResult = guess(mid);

            if (compareResult == 0) {
                return mid;
            } else if (compareResult == 1) {
                start = mid + 1;
            } else {
                end = mid - 1;
            }
        }

        return -1;
    }
}
profile
식지 않는 감자

0개의 댓글