집합을 이용한다
set이란 노드 기반 컨테이너이며 균형 이진트리로 구성되어있다
key값은 중복이 허용되지 않고, insert에 의해 삽입이 되면 원소는 자동으로 정렬(default는 오름차순)된다
상근이가 가지고 있는 숫자 카드 N개를 집합으로 입력받은 후,
입력받은 카드가 있는지 find()함수를 이용하여 찾는다
auto pos = myset.find(x);
변수 x가 myset에 들어있지 않다면 pos는 myset.end()를 출력한다
만약 찾는다면 1을, 못찾았다면 0을 출력하도록 구현한다
#include <iostream>
#include <set>
using namespace std;
int N, M;
set<int> myset;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin >> N;
for (int i = 0; i < N; i++)
{
int x;
cin >> x;
myset.insert(x);
}
cin >> M;
for (int i = 0; i < M; i++)
{
int x;
cin >> x;
auto pos = myset.find(x);
if (pos == myset.end()) {
printf("0 ");
}
else { printf("1 "); }
}
}
'백준' 카테고리의 다른 글
[1620] 나는야 포켓몬 마스터 이다솜 (0) | 2022.07.27 |
---|---|
[14425] 문자열 집합 (0) | 2022.07.27 |
[18870] 좌표 압축 (0) | 2022.07.22 |
[1181] 단어 정렬 (0) | 2022.07.22 |
[2108] 통계학 (0) | 2022.07.17 |
댓글