[백준] 1920번 수 찾기 / C++

#문제

백준 1920번 수 찾기

#풀이

#include <iostream>
#include <unordered_set>

using namespace std;

unordered_set<int> set;

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

	int n, m;
	cin >> n;

	for (int i = 0; i < n; ++i)
	{
		int x;
		cin >> x;

		set.insert(x);
	}

	cin >> m;

	for (int i = 0; i < m; ++i)
	{
		int x;
		cin >> x;

		cout << ((set.find(x) != set.end()) ? "1" : "0") << '\n';
	}

	return 0;
}

#정리

N개의 정수를 입력 받고, M개의 정수를 입력 받아 이전에 입력받은 정수 집합에 속하는 정수인지 확인하는 프로그램을 작성한다. 중복에 대한 처리가 필요없으므로, 원소를 찾는데 가장 속도가 빠른 해쉬셋을 사용했다. 존재 여부를 판단할 때, find(x) 함수는 x가 존재할 경우 Iterator를 반환하고, 없으면 end()를 반환한다. 조건에 따라 코드를 작성하여 해결.




    Enjoy Reading This Article?

    Here are some more articles you might like to read next:

  • [백준] 10815번 숫자 카드 / C++
  • [백준] 2003번 수들의 합 2 / C++
  • [백준] 1269번 대칭 차집합 / C++
  • [백준] 1037번 최소공배수 / C++
  • [백준] 1940번 주몽 / C++