코딩테스트/Baekjoon
[백준 #1920] 수 찾기 (C++)
동띵
2021. 8. 24. 13:40
https://www.acmicpc.net/problem/1920
1920번: 수 찾기
첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들
www.acmicpc.net
이 문제는 벡터와 이진 탐색을 사용해 풀었다.
<algorithm> 헤더파일에 binary_search STL이 정의되어 있기 때문에
이것을 사용하면 쉽게 풀 수 있다.
n개의 정수를 벡터에 저장하고 이진 탐색을 위해 정렬한 후,
m개의 정수를 입력하면서 이진 탐색을 하여
그 정수가 벡터에 존재하는지 알아내는 것이다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n, m, num;
cin >> n;
vector<int> v(n);
for (int i = 0; i < n; i++) {
cin >> v[i];
}
sort(v.begin(), v.end());
cin >> m;
for(int i = 0; i < m; i++) {
cin >> num;
if (binary_search(v.begin(), v.end(), num)) {
cout << "1" << "\n";
}
else cout << "0" << "\n";
}
return 0;
}