https://www.acmicpc.net/problem/1764
1764번: 듣보잡
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.
www.acmicpc.net
해결 방법
문제가 말하는 것은 '듣도' 와 '보도' 둘 다에 해당하는 원소를 찾아서 출력하라는 것인데, set을 사용하지 않고 벡터로 한 컨테이너에 전부 입력받은 뒤 정렬하고 연속해서 나타나면 출력하도록 풀었다. 정석은 set을 사용하는 것 같은데 아무쪼록 풀었으니 상관없지 싶다. 다른 코드들도 찾아보니 sort는 무조건 하게 되기 때문.
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
vector<string> v;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int N, M;
cin >> N >> M;
for (int i = 0; i < N+M; i++)
{
string input;
cin >> input;
v.push_back(input);
}
sort(v.begin(), v.end());
vector<string>::iterator iter;
int cnt = 0;
for(int i = 0 ; i < N+M-1 ; i++)
if(v.at(i) == v.at(i+1))
{
cnt++;
}
cout << cnt << '\n';
for (int i = 0; i < N + M - 1; i++)
if (v.at(i) == v.at(i + 1))
{
cout << v.at(i) << '\n';
i++;
}
return 0;
}
'프로그래밍 공부 > 백준 (C++)' 카테고리의 다른 글
[C++/ 백준 13241번] 최소공배수 (0) | 2023.08.17 |
---|---|
[C++/백준 11478번] 서로 다른 부분 문자열의 개수 (0) | 2023.08.16 |
[C++/백준 10816번] (0) | 2023.08.14 |
[C++/백준 1620번] 나는야 포켓몬 마스터 이다솜 (0) | 2023.08.14 |
[C++/백준 18870번] 좌표 압축 (0) | 2023.08.08 |