10815(번호카드)

난이도: 실버 5

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

쉬운 목차

문제

숫자 카드는 정수가 적힌 카드입니다. 상근은 N개의 숫자 카드를 가지고 있습니다. M개의 정수가 주어졌을 때, 상근이 이 숫자가 적힌 숫자 카드를 가지고 있는지 판단하는 프로그램을 작성하세요.

입력

첫 번째 줄에는 상근이 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 두 번째 줄에는 숫자 카드에 적힌 정수가 포함됩니다. 숫자 카드에 적힌 숫자는 -10,000,000보다 크거나 같고 10,000,000보다 작거나 같습니다. 두 개의 숫자 카드에 같은 숫자가 쓰여 있지 않습니다.

세 번째 줄은 M(1 ≤ M ≤ 500,000)입니다. 네 번째 줄에는 상근이 숫자 카드를 가지고 있는지 여부를 판단할 M개의 정수가 주어지며, 이 숫자는 공백으로 구분됩니다. 이 숫자는 -10,000,000보다 크거나 같고 10,000,000보다 작거나 같습니다.

인쇄

첫 번째 줄에 입력된 M 숫자의 경우, 상근에 각 숫자가 적힌 숫자 카드가 있으면 1이 출력되고 없으면 0이 출력됩니다.


설명

#include <iostream>
#include <set>
using namespace std;

int N, M;
set<int> s;

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	cin >> N;
	for (int i = 0; i < N; i++)
	{
		int num;
		cin >> num;
		s.insert(num);
	}

	cin >> M;
	for (int i = 0; i < M; i++)
	{
		int num;
		cin >> num;
		if (s.find(num) != s.end())	// find는 해당 원소를 찾지 못하면 end를 리턴함
			cout << 1 << " ";
		else
			cout << 0 << " ";
	}
}