상세 컨텐츠

본문 제목

< 백준 BaekJoon : 1764번 듣보잡> C++

C++/Baekjoon

by J2on 2022. 8. 15. 16:10

본문

<<문제>>

https://www.acmicpc.net/problem/1764

 

1764번: 듣보잡

첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.

www.acmicpc.net

듣도 보도 못한 사람의 수와 명단을 찾는 문제입니다.

듣도 못한 사람과 보도 못한 사람의 교집합이 듣도 보도 못한 사람이 됩니다.

 

#듣도 못한 사람 명단 ∩ 보도 못한 사람 명단 = 듣도 보도 못한 사람 명단

 

<<풀이>>

듣도 못한 사람들 명단을 map으로 정리해서 보도 못한 사람들을 입력 받았을때 듣도 못한 명단에 있는지 확인했습니다.

 

<<코드>>

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <map>
using namespace std;

/*
BaekJoon_1764 : 듣보잡
	듣도 못한 사람 명단 ∩ 보도 못한 사람 명단 = 듣도 보도 못한 사람 명단
*/

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);

	int numN; // 듣도 못한
	int numM; // 보도 못한
	cin >> numN >> numM;

	map<string, string> unheard; // 듣도 못한 사람들을 map에 정리
	string input;
	for (int i = 0; i < numN; i++) {
		cin >> input;
		unheard[input] = "듣도 못한";
	}

	vector<string> neither_heard_nor_seen; // 듣보잡 벡터
	for (int i = 0; i < numM; i++) {
		cin >> input;
		if (unheard.find(input) != unheard.end()) {
			neither_heard_nor_seen.push_back(input);
		}
	}

	// 답이 사전순으로 정렬
	sort(neither_heard_nor_seen.begin(), neither_heard_nor_seen.end());

	cout << neither_heard_nor_seen.size() << "\n";
	for (string temp : neither_heard_nor_seen) {
		cout << temp << "\n";
	}


	return 0;
}

<<깃헙>>

https://github.com/J2on/BaekjoonOnlineJudge/tree/master/V2

 

GitHub - J2on/BaekjoonOnlineJudge: My Study

My Study. Contribute to J2on/BaekjoonOnlineJudge development by creating an account on GitHub.

github.com

 

 

관련글 더보기

댓글 영역