※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 16175번 문제인 걸그룹 마스터 준석이이다.
문제는 아래 링크를 확인하자.

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

 

16165번: 걸그룹 마스터 준석이

정우는 소문난 걸그룹 덕후이다. 정우의 친구 준석이도 걸그룹을 좋아하지만 이름을 잘 외우지 못한다는 문제가 있었다. 정우는 친구를 위해 걸그룹 개인과 팀의 이름을 검색하여 외우게 하는

www.acmicpc.net

각 팀과 멤버 사이 관계를 set과 map을 관리하면 문제를 편하게 해결할 수 있다.

 

각 팀을 입력하면 그 팀의 멤버가 들어있는 집합 set<string>을 반환하는 맵 map<string,set<string>> teamquiz와 각 멤버를 입력하면 그 멤버가 속한 팀을 반환하는 map<string,string> memquiz를 아래와 같이 구현해 문제를 해결하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
#include <vector>
#include <set>
#include <map>
using namespace std;

int N, M;
map<string, string> memquiz;
map<string, set<string>> teamquiz;
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> N >> M;
	while (N--) {
		string team; cin >> team;
		set<string> members;
		int K; cin >> K;
		while (K--) {
			string mem; cin >> mem;
			members.insert(mem);
			memquiz.insert(make_pair(mem, team));
		}
		teamquiz.insert(make_pair(team, members));
	}

	while (M--) {
		int q; string s; cin >> s >> q;
		if (q) cout << memquiz[s] << '\n';
		else {
			for (auto& x : teamquiz[s]) cout << x << '\n';
		}
	}
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 28431 // C++] 양말 짝 맞추기  (0) 2023.08.07
[BOJ 28432 // C++] 끝말잇기  (0) 2023.08.07
[BOJ 16168 // C++] 퍼레이드  (0) 2023.08.06
[BOJ 16167 // C++] A Great Way  (0) 2023.08.05
[BOJ 28278 // C++] 스택 2  (0) 2023.08.04

+ Recent posts