백준 1920번 수 찾기

김동현·2022년 6월 27일
0
#include <algorithm>
#include <iostream>

using namespace std;

int arr[100000];

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);

	int N;
	cin >> N;

	for (int i = 0; i < N; ++i)
	{
		cin >> arr[i];
	}

	sort(arr, arr + N);

	int M;
	cin >> M;

	for (int i = 0; i < M; ++i)
	{
		int num;
		cin >> num;

		bool isExist = false;
		int s = 0, e = N;

		while (s < e)
		{
			// 중간지점 구하고
			int m = (s + e) / 2;

			// 비교하고
			if (arr[m] == num)
			{
				isExist = true;

				break;
			}
			// 그거에 따라서 범위 조정
			else if (arr[m] < num)
			{
				s = m + 1;
			}
			else
			{
				e = m;
			}

		}

		cout << (isExist ? "1\n" : "0\n");

		// 선형검색
		/*bool isExist = false;
		for (int j = 0; j < M; ++j)
		{
			if (arr[j] == num)
			{
				isExist = true;

				break;
			}

			cout << (isExist ? "1\n" : "0\n");
		}*/
	}
}
profile
해보자요

0개의 댓글