algorithm
백준 1764번 듣보잡
YOU__NAVI
2024. 10. 13. 20:35
#include <iostream>
#include <map>
using namespace std;
map<string, int> hear;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int n, m;
int count = 0;
string value;
cin >> n >> m;
for (int i = 0; i < n; i++) {
cin >> value;
hear.insert({ value, 0 });
}
for (int i = 0; i < m; i++) {
cin >> value;
if (hear.find(value) != hear.end()) {
count++;
hear[value]++;
}
}
cout << count << "\n";
for (map<string, int>::iterator iter = hear.begin(); iter != hear.end(); iter++) {
if (iter->second > 0) {
cout << iter->first << "\n";;
}
}
return 0;
}
https://www.acmicpc.net/problem/1764
아이디어:
1. 일반적인 배열은 시간복잡도가 높아 map(O(logn))과 find를 사용
2. map의 반복자 iter를 사용해서 순환