[LeetCode] Guess Number Higher or Lower

아르당·2026년 1월 6일

LeetCode

목록 보기
77/94
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

우리는 추측 게임을 하고 있다. 게임 방법은 다음과 같다.
나는 1부터 n까지 숫자 중 하나를 고른다. 당신은 내가 어떤 숫자를 골랐는지 맞춰야 한다(내가 고른 숫자는 게임이 진행되는 동안 유지된다).
당신이 틀릴 때마다, 내가 고른 숫자가 당신이 예상한 숫자보다 높은지 낮은지 알려준다.
미리 정의된 API intguess(int num)을 호출하면 세 가지 가능한 겨로가가 반환된다.

  • -1: 당신의 추측이 내가 고른 숫자보다 높다.
  • 1: 당신의 추측이 내가 고른 숫자보다 낮다.
  • 0: 당신의 추측이 내가 고른 숫자와 같다.

내가 고른 숫자를 반환해라.

Example

#1
Input: n = 10, pick = 6
Output: 6

#2
Input: n = 1, pick = 1
Output: 1

#3
Input: n = 2, pick 1
Output: 1

Constraints

  • 1 <= n <= 2^31 - 1
  • 1 <= pick <= n

Solved

/** 
 * Forward declaration of guess API.
 * @param  num   your guess
 * @return 	     -1 if num is higher than the picked number
 *			      1 if num is lower than the picked number
 *               otherwise return 0
 * int guess(int num);
 */

public class Solution extends GuessGame {
    public int guessNumber(int n) {
        int low = 1;
        int high = n;

        while(low <= high){
            int mid = low + (high - low) / 2;

            if(guess(mid) == -1) high = mid - 1;
            else if(guess(mid) == 1) low = mid + 1;
            else return mid;
        }

        return n;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글