N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 문제이다.
// 아래의 코드는 dev c++환경에서 동작됩니다.
// visual studio에서는 bit/stdc++.h가 기본적으로 없기 때문에
// 정삭적인 작동이 되지 않을 수 있습니다.
#include <bits/stdc++.h>
using namespace std;
int n, m;
vector<int> v;
int main()
{
ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
cin >> n;
for(int i = 0; i < n; i++)
{
int temp;
cin >> temp;
v.push_back(temp);
}
cin >> m;
sort(v.begin(), v.end());
for(int i = 0; i < m; i++)
{
int temp;
cin >> temp;
cout << binary_search(v.begin(), v.end(), temp) << "\\n";
}
return 0;
}
문제를 보면 브루트포스가 떠오르지만 최대입력값을 잘 인지한다면 함정을 잘 피해갈 수 있던 문제였다. 마침 binary_search함수도 알고 있어서, 간결하며 효율적으로 문제를 해결할 수 있었다.