https://programmers.co.kr/learn/courses/30/lessons/42888
코딩테스트 연습 - 오픈채팅방
오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오
programmers.co.kr
#include <string>
#include <vector>
#include <sstream>
#include <unordered_map>
using namespace std;
vector<string> solution(vector<string> record) {
vector<string> answer; //정답
vector<pair<bool, string>> result; //결과로 찍을 순서
unordered_map<string, string> users; //id와 닉네임을 넣는 map
for (string r : record) { //마지막 닉네임을 알아내기 위해
string command, uid, unick;
istringstream ss(r);
ss >> command >> uid >> unick;
if (!command.compare("Enter")) { //입장
users[uid] = unick;
result.push_back({ true,uid });
}
else if (!command.compare("Leave")) { //퇴장
result.push_back({ false,uid });
}
else { //변경
users[uid] = unick;
}
}
for (auto tmp : result) { //결과를 저장하는 단계
string nickname = users[tmp.second];
if (tmp.first) { //입장
answer.push_back(nickname + "님이 들어왔습니다.");
}
else { //퇴장
answer.push_back(nickname + "님이 나갔습니다.");
}
}
return answer;
}
'전공공부 > 코딩테스트' 카테고리의 다른 글
(c++) 백준 "1141)접두사" (0) | 2022.06.27 |
---|---|
(c++) 백준 "1032) 명령 프롬프트" (0) | 2022.06.27 |
(c++) 백준 "16928) 뱀과 사다리 게임" (0) | 2022.06.10 |
(C++) 프로그래머스 "보행자 천국" (0) | 2022.06.10 |
(c++) 백준 "1992) 쿼드 트리" (0) | 2022.06.09 |