1부터 n 사이의 숫자 중 선택된 숫자에 대해 찾아서 리턴하는 문제이다. 이 때 개발자가 제시한 숫자가 선택된 숫자보다 큰 지, 작은 지, 같은 지에 대해 리턴하는 API인 int guess(int n) 메서드를 LeetCode 문제에서 제공하는 GuessGame 클래스를 상속받아 사용할 수 있다.
binary Search 로 문제를 풀이하였다.
public class Solution extends GuessGame {
public int guessNumber(int n) {
long low = 1;
long high = n;
long mid = (low+high)/2;
while(low <= high) {
int result = guess((int) mid);
if(result == 0) {
break;
} else if(result==1) {
low = mid+1;
} else {
high = mid;
}
mid = (low+high)/2;
}
return (int)mid;
}
}