문제 링크: https://www.acmicpc.net/problem/1764
교집합을 출력하면 됩니다
std::set_intersection
을 사용하면 편리합니다.
#pragma GCC optimize ("Ofast")
#define _CRT_SECURE_NO_WARNINGS
#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING
#include <bits/stdc++.h>
using namespace std;
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
set<string> s1, s2;
int n, m;
string s;
cin >> n >> m;
while (n--) {
cin >> s;
s1.insert(s);
}
while (m--) {
cin >> s;
s2.insert(s);
}
vector<string> v;
set_intersection(s1.begin(), s1.end(),
s2.begin(), s2.end(),
back_inserter(v));
cout << v.size() << '\n';
for (auto& c : v)
cout << c << '\n';
return 0;
}
반응형
'Online Judge > 백준' 카테고리의 다른 글
[백준][C++] 19236: 청소년 상어 (0) | 2020.07.11 |
---|---|
[백준][C++] 1780: 종이의 개수 (0) | 2020.07.11 |
[백준][C++] 2993: 세 부분 (0) | 2020.07.09 |
[백준][C++] 1806: 부분합 (0) | 2020.07.08 |
[백준][C++] 2473: 세 용액 (0) | 2020.07.08 |