https://school.programmers.co.kr/learn/courses/30/lessons/1835
Enter uid1234 Muzi
Leave uid1234
Change uid4567 Ryan
각 명령어들을 처리하여 완성된 문자열과 사용될 회원 id로 저장하겠다.
#include<string>
#include<sstream>
#include<vector>
#include<map>
#include<iostream>
using namespace std;
vector<string> g_record;
map<string, string> user_map; //id : nickName
vector<pair<string, string>> result;
vector<string> result_string;
void solve() {
//1. record를 명령어 처리
for (auto& s : g_record) {
//공백 기준으로 명령어 자르기
stringstream ss(s);
ss.str(s);
//명령어 할당
string command;
ss >> command;
string id;
string nickName;
if (command == "Enter") {
ss >> id >> nickName;
user_map[id] = nickName;
result.push_back({ id, "님이 들어왔습니다."});
}
else if (command == "Leave") {
ss >> id;
result.push_back({ id, "님이 나갔습니다." });
}
else if (command == "Change") {
ss >> id >> nickName;
user_map[id] = nickName;
}
}
//2. 결과 구성하기
for (auto& s : result) {
result_string.push_back(user_map[s.first] + s.second);
}
}
vector<string> solution(vector<string> record) {
vector<string> answer;
g_record = record;
solve();
answer = result_string;
return answer;
}