풀이 :
1. 입력으로 주어지는 n + m번의 반복문을 돌면서 문자열을 입력
2. 문자열을 입력받으면서 벡터에 문자열들을 저장
3. 저장한 벡터를 나중에 출력할 때 사전순으로 출력하기 위해서 오름차순 형태로 정렬
4. 출력을 위한 벡터를 또 만들어서 정렬된 벡터의 크기만큼 반복문을 돌면서 듣보잡을 벡터에 추가
5. 듣보잡의 수가 이미 벡터의 크기만큼 정해졌기 때문에 그 벡터의 크기를 출력하고 이전에 저장한 출력을 위한 벡터를 반복문을 돌면서 출력해주면 끝
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
int main()
{
int n, m;
cin >> n >> m;
string s;
vector<string> v;
for (int i = 0; i < n + m; i++) {
cin >> s;
v.push_back(s);
}
sort(v.begin(), v.end());
vector<string> r;
for (int i = 1; i < n + m; i++) {
if (v[i].compare(v[i - 1]) == 0)
r.push_back(v[i++]);
}
cout << r.size() << "\n";
for (int i = 0; i < r.size(); i++) {
cout << r[i] << "\n";
}
}
'개발 > 알고리즘 풀이...' 카테고리의 다른 글
[백준] 11650번 문제 풀이 (0) | 2021.04.11 |
---|---|
[백준] 4949번 문제 풀이 (0) | 2021.03.14 |
[백준] 1181번 문제 풀이 (0) | 2021.03.13 |
[백준] 4796번 문제 풀이 (0) | 2021.03.12 |
[백준] 1946번 문제 (0) | 2021.03.10 |