#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N,M = 0;
vector<int> n1;
vector<int> m1;
cin >> N;
for(int i=0; i<N; i++){
int a = 0;
cin >> a;
n1.push_back(a);
}
cin >> M;
for(int i=0; i<M; i++){
int b = 0;
cin >> b;
m1.push_back(b);
}
sort(n1.begin(), n1.end()); // 이진탐색 진행을 위한 조건 - 정렬
for(int i=0; i<M; i++){
if(binary_search(n1.begin(),n1.end(),m1[i])) cout << 1 << "\n";
else cout << 0 << "\n";
}
return 0;
}
이진 탐색(Binary Search)를 통해 풀었다.
이진 탐색을 처음 사용했기 때문에, 직접 구현하지는 않고 STL을 가져다 썼다.
다음엔 직접 이진 탐색을 구현해봐야겠다.
* 참고로 이진 탐색의 기본 조건은 '오름/내림 차순으로 정렬이 완료'되야 하기 때문에
탐색을 하기 전 sort로 미리 정렬을 진행했다.
'🖥️ CS > Baekjoon Algorithms' 카테고리의 다른 글
#4963 섬의 개수 (C++) (0) | 2020.09.16 |
---|---|
#2805 나무 자르기 (C++) (0) | 2020.05.25 |
#2960번 에라토스테네스의 체 (C++) (0) | 2020.05.20 |
#1463번 1로 만들기 (C++) (0) | 2020.05.20 |
#2579번 계단 오르기 (C++) (0) | 2020.05.18 |