문제
https://www.acmicpc.net/problem/1764
1764번: 듣보잡
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.
www.acmicpc.net
소스코드
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <map>
using namespace std;
map<string, int> m1;
vector<string> v;
int main() {
ios_base::sync_with_stdio(false), cin.tie(NULL);
int n, m;
cin >> n >> m;
for (int i = 0; i < n + m; i++) {
string s;
cin >> s;
m1[s]++;
}
for (auto iter = m1.begin(); iter != m1.end(); iter++) {
if (iter->second > 1) {
v.push_back(iter->first);
}
}
cout << v.size() << "\n";
for (int i = 0; i < v.size(); i++) {
cout << v[i] << "\n";
}
}
해설
듣보잡과 명단을 한번에 맵에 쑤셔박은 다음 같은 이름일경우 카운트를 증가시켜서 구별시켜준다.
간단하게 맵에 대한 사용법만 알고있으면 문제를 해결할 수 있는 문제입니다.
'Algorithm > 자료구조' 카테고리의 다른 글
[백준] 알고리즘 C++ 17298번 - 오큰수 문제 (0) | 2022.01.07 |
---|---|
[백준] 알고리즘 C++ 1927번 - 최소 힙문제 (0) | 2021.11.19 |
[백준] 알고리즘 C++ 10989번 - 수 정렬하기3문제 (0) | 2021.11.10 |
[백준] 알고리즘 C++ 11866번 - 요세푸스 문제 0문제 (0) | 2021.11.07 |
[백준] 알고리즘 C++ 2164번 - 카드2문제 (0) | 2021.10.11 |