link : https://www.acmicpc.net/problem/1764
듣보잡 성공
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞은 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 128 MB | 7744 | 3004 | 2128 | 40.030% |
문제
김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 영어 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이다.
출력
듣보잡의 수와 그 명단을 사전순으로 출력한다.
예제 입력 1
3 4 ohhenrie charlie baesangwook obama baesangwook ohhenrie clinton
예제 출력 1
2 baesangwook ohhenrie
문자열 구현 문제이다. 이럴때보면 map이랑 set만들어준 분들에게 너무 감사하다.
절하면서 문제풀자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #include<iostream> #include<map> #include<vector> #include<string> #include<algorithm> using namespace std; int N, M; string t; map<string, int> m; vector<string> answer; int main() { ios::sync_with_stdio(false); cin.tie(0); cin >> N >> M; for (int i = 0; i < N; i++) { cin >> t; m[t] = 1; } for (int i = 0; i < M; i++) { cin >> t; if (m.find(t) != m.end()) answer.push_back(t); } sort(answer.begin(), answer.end()); cout << answer.size() << "\n"; for (int i = 0; i < answer.size(); i++) { cout << answer[i] << "\n"; } return 0; } | cs |
'Programming > BOJ Solutions' 카테고리의 다른 글
[백준 2606번] 바이러스 (0) | 2018.10.10 |
---|---|
[백준 5525번] IOIOI (0) | 2018.10.02 |
[백준 1157번] 단어 공부 (0) | 2018.10.02 |
[백준 10217번] KCM Travel (0) | 2018.10.02 |
[백준 11657번] 타임머신 (0) | 2018.09.18 |