오름차순으로 정렬된 리스트에서 특정한 값의 위치를 찾는 알고리즘이다.
처음 중간의 값을 임의의 값으로 선택하여, 그 값과 찾고자 하는 값의 크고 작음을 비교하는 방식을 채택하고 있다.
public static void main(String[] args) {
int n = 6;
int[] times = {7,10};
int min = times[0];
int max = n*times[times.length-1];
int answer = 0;
while(min <= max){
int done = 0;
int mid = (min + max) / 2;
for (int i : times){
cnt += mid/i;
}
if (cnt >= n){
answer = mid;
max = mid -1;
}else{
min = mid +1;
}
}
System.out.println(answer);;
}