istringstream
#include <string>
#include <vector>
#include <sstream>
#include <iostream>
#include <map>
using namespace std;
map<string, string> m;
vector<string> solution(vector<string> records) {
vector<string> answer;
vector<string> tmp;
for(string record: records)
{
istringstream iss(record);
string first, uid, nick;
iss >> first >> uid;
if(first != "Leave")
iss >> nick;
if(first == "Enter")
{
m[uid] = nick;
tmp.push_back(uid +" "+"님이 들어왔습니다.");
}
else if(first == "Leave")
{
tmp.push_back(uid+" "+ "님이 나갔습니다.");
}
else if (first == "Change")
{
m[uid] = nick;
}
}
for(int i = 0; i < tmp.size(); i++)
{
istringstream iss(tmp[i]);
string uid, rest1, rest2 ;
iss >> uid >> rest1 >> rest2;
answer.push_back(m[uid] + rest1 + " " +rest2);
}
return answer;
}
파이썬 코드
d = dict()
def solution(records):
answer = []
for record in records:
if record[0] == 'E':
action, uid, name = record.split(" ")
d[uid] = name
elif record[0] == 'C':
action, uid, name = record.split(" ")
d[uid] = name
for record in records:
if record[0] == 'E':
action, uid, name = record.split(" ")
answer.append(d[uid] + "님이 들어왔습니다.")
elif record[0] == 'L':
action, uid = record.split(" ")
answer.append(d[uid] + "님이 나갔습니다.")
return answer