C++ 수 찾기 - 백준 알고리즘

Updated:

1920번 수 찾기


문제


N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오.

입력


첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다.

5
4 1 5 2 3
5
1 3 7 9 5

출력


M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다.

1
1
0
0
1

정답


#include <iostream>
#include <algorithm>
#include <functional>
#include <cstdio>
#include <vector>

using namespace std;

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	vector<int> v1;
	vector<int> v2;

	int N = 0, M = 0;
	int i = 0;
	cin >> N;
	v1.resize(N);
	for (i = 0; i < N; i++)
	{
		cin >> v1[i];
	}
	sort(v1.begin(), v1.end());
	cin >> M;
	v2.resize(M);
	for (i = 0; i < M; i++)
	{
		cin >> v2[i];
	}

	for (i = 0; i < M; i++)
	{
		if (binary_search(v1.begin(), v1.end(), v2[i]))
			cout << "1\n";
		else
			cout << "0\n";
	}

	return 0;
}

Leave a comment