https://www.acmicpc.net/problem/16165
16165번: 걸그룹 마스터 준석이
정우는 소문난 걸그룹 덕후이다. 정우의 친구 준석이도 걸그룹을 좋아하지만 이름을 잘 외우지 못한다는 문제가 있었다. 정우는 친구를 위해 걸그룹 개인과 팀의 이름을 검색하여 외우게 하는
www.acmicpc.net
풀이 :
- map을 활용해서 푸는 문제로,
그룹명과 멤버이름이 주어지면 key값은 멤버 이름, value값은 그룹명으로 해서 map에 저장한다
- 주어지는 퀴즈가 1이라면 멤버 이름이 주어지고, 멤버가 속한 그룹명 출력
- 주어지는 퀴즈가 0이라면 그룹 이름이 주어지고, 그룹에 있는 모든 멤버의 이름 출력
코드 :
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
int main(){
cin.tie(NULL);
ios::sync_with_stdio(false);
int n, m, members;
bool quiz;
string groupName, memberName, name;
map<string, string> member;
cin >> n >> m;
while(n--){
cin >> groupName >> members;
while(members--){
cin >> memberName;
member.insert({memberName, groupName}); //멤버 이름이 key, 그룹명은 value
}
}
while(m--){
cin >> name >> quiz;
if(quiz){ //퀴즈가 1이라면
cout << member.find(name)->second << '\n'; //탐색할 필요없이 key값인 멤버 이름을 기준으로 그룹명 출력
}else{ //퀴즈가 0이라면
map<string,string>::iterator it;
for(it=member.begin(); it!=member.end(); it++){ //map전체 탐색
if(it->second == name){ //value값이 주어진 그룹명과 일치하다면
cout << it->first << '\n'; //key값인 멤버이름 출력
}
}
}
}
}
'PS_Baekjoon' 카테고리의 다른 글
[백준 C++] 20365번 : 블로그2 (0) | 2023.03.25 |
---|---|
[백준 C++] 21921번 : 블로그 (0) | 2023.03.24 |
[백준 C++] 1475번 : 방 번호 (1) | 2023.03.22 |
[백준 C++] 1431번 : 시리얼 번호 (1) | 2023.03.21 |
[백준 C++] 13417번 : 카드 문자열 (0) | 2023.03.20 |