[백준] 1926번 수 찾기 C++

semi·2022년 10월 4일
0

coding test

목록 보기
46/57

https://www.acmicpc.net/problem/1920

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;


int main(void)
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	vector<long long> v;
	int N, M, low, high;
	long long tmp;
	cin >> N;
	for (int i = 0; i < N; i++)
	{
		cin >> tmp;
		v.push_back(tmp);
	}
	sort(v.begin(), v.end());
	cin >> M;

	for (int i = 0; i < M; i++)
	{
		bool flag = false;
		low = 0;
		high = N - 1;
		cin >> tmp;
		while (low <= high)
		{
			int mid = (low + high) / 2;
			if (tmp == v[mid])
			{
				flag = true;
				cout << 1 << "\n";
				break;
			}
			else if (tmp > v[mid])
			{
				low = mid + 1;
			}
			else
			{
				high = mid - 1;
			}

		}
		if (!flag)
			cout << 0 << "\n";

	}
	return 0;
}

0개의 댓글