컴굥일지
[BOJ/백준 16165][C++] 걸그룹 마스터 준석이 본문
반응형
문제
https://www.acmicpc.net/problem/16165
문제 내용
걸그룹 팀 이름과 걸그룹 멤버들을 입력받는다. (한 개의 팀이 아닌 여러 개의 팀이다. 입력 형식에 맞게 처리할 것)
이후 팀 이름이 입력되면 멤버들을 출력하고, 멤버 이름이 입력되면 팀 이름을 출력하면 된다.
문제 풀이
unordered_map을 사용했다.
(팀, 멤버 벡터) 형식으로 저장하기 위한 team_member와, (멤버, 팀) 형식으로 정하기 위한 member_team을 선언하여 사용한다.
팀에는 멤버가 여러 명이기 때문에 벡터 형식으로 지정했다.
또한, 팀을 입력했을 때는 멤버를 사전순으로 출력해야 하기 때문에 sort로 정렬을 진행했다.
코드
#include <algorithm>
#include <iostream>
#include <unordered_map>
#include <vector>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n, m;
cin >> n >> m;
unordered_map<string, vector<string>> team_member; // 팀, 멤버 벡터
unordered_map<string, string> member_team; // 멤버, 팀
string team, member;
int member_num;
while (n--) {
cin >> team >> member_num;
vector<string> member_list; // 해당 팀에 속하는 멤버 벡터
while (member_num--) {
cin >> member;
member_list.push_back(member);
member_team[member] = team;
}
sort(member_list.begin(), member_list.end()); // 멤버는 사전순으로 정렬
team_member[team] = member_list;
}
int question_type;
string question;
while (m--) {
cin >> question >> question_type;
if (question_type == 0) { // 팀을 입력 받아 멤버들을 출력
for (auto member : team_member[question]) {
cout << member << "\n";
}
} else { // 멤버를 입력 받아 팀을 출력
cout << member_team[question] << "\n";
}
}
}
반응형
'알고리즘 > 코테 문제' 카테고리의 다른 글
[BOJ/백준 5014][C++] 스타트링크 (0) | 2023.08.13 |
---|---|
[BOJ/백준 19583][C++] 싸이버개강총회 (0) | 2023.08.13 |
[BOJ/백준 13414][C++] 수강신청 (0) | 2023.08.12 |
[BOJ/백준 17219][C++] 비밀번호 찾기 (0) | 2023.08.12 |
[BOJ/백준 21921][C++] 블로그 (0) | 2023.08.11 |
Comments