N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오.
#include <stdio.h>
#include <stdlib.h>
int compare(const void *a, const void *b) {
int int_a = *(int*)a;
int int_b = *(int*)b;
if (int_a < int_b) return -1;
if (int_a > int_b) return 1;
return 0;
}
int binary_search(int* arr, int n, int target) {
int left = 0, right = n - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (arr[mid] == target) {
return 1;
} else if (arr[mid] < target) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return 0;
}
int main() {
int N, M;
scanf("%d", &N);
int *A = (int *)malloc(sizeof(int) * N);
for (int i = 0; i < N; i++) {
scanf("%d", &A[i]);
}
scanf("%d", &M);
int *B = (int *)malloc(sizeof(int) * M);
for (int i = 0; i < M; i++) {
scanf("%d", &B[i]);
}
qsort(A, N, sizeof(int), compare);
for (int i = 0; i < M; i++) {
printf("%d\\n", binary_search(A, N, B[i]));
}
free(A);
free(B);
return 0;
}