//이진탐색 - 숫자 찾기
import java.util.*;
class Solution {
public int solution(int[] nums, int target){
int answer = 0;
int left = 0;
int right = nums.length - 1; // 배열의 길이
while(left <= right){
int mid = (left + right)/ 2; //중간값 지정
if(nums[mid] == target) return mid;
//배열의 중간 값이 타겟과 같으면 중간값으로 지정
if(nums[mid] < target) left = mid + 1;
//배열의 중간 값이 타겟보다 작으면 왼쪽이 중간 값의 오른쪽으로 한칸 옆으로 감
else right = mid - 1; // 오른쪽이 중간값의 왼쪽으로 한칸 옆으로 감
}
return -1;
}
public static void main(String[] args){
Solution T = new Solution();
System.out.println(T.solution(new int[]{2, 5, 7, 8, 10, 15, 20, 24, 25, 30}, 8));
System.out.println(T.solution(new int[]{-3, 0, 2, 5, 8, 9, 12, 15}, 0));
System.out.println(T.solution(new int[]{-5, -2, -1, 3, 8, 9, 12, 17, 23}, 2));
System.out.println(T.solution(new int[]{3, 6, 9, 12, 17, 29, 33}, 3));
System.out.println(T.solution(new int[]{1, 2, 3, 4, 5, 7, 9, 11, 12, 15, 16, 17, 18}, 18));
}
}