반응형

#include<stdio.h>
#include<algorithm>
using namespace std;

int binary_search(int a[], int n, int x) //이진 탐색, sort된 배열만 취급
{
	long long l, r, m;
	l = 0;
	r = n - 1;

	while (l <= r)
	{
		m = (l + r) / 2;
		if (a[m] == x) return 1;
		else if (a[m] > x) r = m - 1;
		else l = m + 1;
	}
	return 0;
}


int main(void)
{
	int M, N;
	int A[100001], x;
	bool check;

	scanf("%d", &M);

	for (int i = 0; i < M; i++)
	{
		scanf("%d", &A[i]);
	}

	
	sort(A, A+M);

	scanf("%d", &N);

	for (int i = 0; i < N; i++)
	{
		scanf("%d", &x);

		if (binary_search(A, M, x) == 1)
		{
			printf("1\n");
		}
		else
		{
			printf("0\n");
		}
	}

	
	

}

 

처음에는 반복문으로 sort함수를 만들어서 정렬 후 이진탐색을 통해 해당 값이 있는지 확인하였지만 시간초과가 발생하여서 헤더파일 <Algorithm>에 속해있는 Sort 알고리즘으로 정렬하면 시간 단축이 가능할 것 같아서 수정 후 정답 받았습니다.

반응형

+ Recent posts