반응형
문제
김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 영어 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이다.
출력
듣보잡의 수와 그 명단을 사전순으로 출력한다.
1. java와 달리 c++은 string객체에 있어서 내용이 같으면 같은 인스턴스로 봄.
2. vector push_back하면 인덱스 배열로 바로 참조 가능.
간단한 문제였지만 더 간단한 문제인 줄 알았는데 나름 정렬도 필요하고 시간초과 잡기위해 맵도 쓰고 했어야 하는 문제였다.
#include<iostream>
#include<string>
#include<cmath>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
map<string,int> m;
vector<string> vec;
int result = 0;
int main(void)
{
int N, M;
cin >> N >> M;
string str;
int index = 0;
for(int i = 0; i<N; i++)
{
cin >> str;
m[str] = 1;
}
for(int j = 0; j <M; j++)
{
cin >> str;
if(m[str])
{
result++;
vec.push_back(str);
index++;
}
}
sort(vec.begin(),vec.end());
cout << result <<endl;
for(int i = 0; i<index; i++)
{
cout<<vec[i]<<endl;
}
}
반응형
'Algorithm' 카테고리의 다른 글
백준 3613번 Java vs C++ (0) | 2020.01.03 |
---|---|
백준 9933번 민균이의 비밀번호 (0) | 2020.01.01 |
5648. [모의 SW 역량테스트] 원자 소멸 시뮬레이션 (0) | 2019.12.30 |
7673. 영이는 영이 시져시져! (0) | 2019.12.29 |
1247. [S/W 문제해결 응용] 3일차 - 최적 경로 (0) | 2019.12.28 |