import java.util.*;
public class Main
{
static int N, M;
static int[] arr;
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
N = in.nextInt();
arr = new int[N];
// A 초기화
for(int i=0; i < N; i++){
arr[i] = in.nextInt();
}
Arrays.sort(arr); // 정렬 하기
M = in.nextInt();
for(int j=0; j < M; j++){
int low = 0;
int high = N - 1;
int m = in.nextInt();
System.out.println(binarySearch(low, high, m));
}
}
private static int binarySearch(int low, int high, int key){
int mid = (low + high) / 2;
if(low <= high){
// key 가 arr[mid] 보다 작을 때
if(key < arr[mid]){
return binarySearch(low, mid - 1, key);
} // key 가 arr[mid] 보다 클 때
else if (key > arr[mid]){
return binarySearch(mid + 1, high, key);
}
else { // 찾았으면
return 1;
}
}
// 못 찾았으면
return 0;
}
}
N => 정수 개수
A => N개 만큼
M => 정수 개수
-> 이 수들이 A안에 존재 하는지
if 존재 -> return 1
else -> return 0
mid = start + end / 2 => index
key <-> arr[mid] 와의 관계
'알고리즘' 카테고리의 다른 글
<백준> 3273번 자바 알고리즘 [투 포인터] (0) | 2022.04.13 |
---|---|
<백준> 2805번 자바 알고리즘 [이분 탐색] (0) | 2022.03.06 |
<백준> 1260번 자바 알고리즘 [BFS, DFS] (0) | 2022.01.29 |
<백준> 1707번 자바 알고리즘 [BFS][이분 그래프] (0) | 2022.01.25 |
<백준> 7562번 자바 알고리즘[BFS] (0) | 2022.01.24 |