main
[백준-1920번/Java] 수 찾기 본문
* 이분탐색 (Binary Search)
import java.util.*;
import java.io.*;
public class Main {
static int BinarySearch(int key, int low, int high, int[] arr) {
if (low > high)
return 0;
int mid = (low + high) / 2;
if (arr[mid] == key) {
return 1;
} else if (arr[mid] > key) {
return BinarySearch(key, low, mid - 1, arr);
} else if (arr[mid] < key) {
return BinarySearch(key, mid + 1, high, arr);
}
return 0;
}
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = sc.nextInt();
int[] arr = new int[N];
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
}
Arrays.sort(arr);
int M = sc.nextInt();
for (int i = 0; i < M; i++) {
int num = sc.nextInt();
bw.write(BinarySearch(num, 0, arr.length - 1, arr) + "\n");
}
bw.flush();
sc.close();
}
}
728x90
'Algorithm' 카테고리의 다른 글
[백준-1316번/Java] 그룹 단어 체커 (0) | 2022.11.11 |
---|---|
[백준-5622번/Java] 다이얼 (0) | 2022.11.11 |
[백준-2839번/Java] 설탕배달 (0) | 2022.11.11 |
[백준-2869번/Java] 달팽이는 올라가고 싶다. (0) | 2022.11.10 |
[백준-2751번/Java] 수 정렬하기 2 (0) | 2022.11.10 |
Comments