Problem
Problem URL : 오픈채팅방
[1] Answer Code (18. 10. 02)
#include <string>
#include <vector>
#include <iostream>
#include <sstream>
#include <map>
#define p pair<string,string>
using namespace std;
vector<string> solution(vector<string> record) {
vector<string> answer;
vector<p> ans;
map<string, string> m;
for(int i=0; i<record.size(); i++){
istringstream iss(record[i]);
vector<string> v;
for(string s; iss >> s;){
v.push_back(s);
}
ans.push_back({ v[0], v[1]});
if(v[0][0] == 'E'){ // Enter
m[v[1]] = v[2];
}
else if(v[0][0] == 'C'){ // Change
m[v[1]] = v[2];
}
} // end of for i
for(int i=0; i<ans.size(); i++){
string state = ans[i].first;
string uid = ans[i].second;
map<string,string>::iterator iter;
iter = m.find(uid);
string name = iter->second;
if(state[0] == 'E'){
name += "님이 들어왔습니다.";
answer.push_back(name);
}
else if(state[0] == 'L'){
name += "님이 나갔습니다.";
answer.push_back(name);
}
}
return answer;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
vector<string> record = {
{"Enter uid1234 Muzi"},
{"Enter uid4567 Prodo"},
{"Leave uid1234"},
{"Enter uid1234 Prodo"},
{"Change uid4567 Ryan"}
};
solution(record);
return 0;
}
Review
-
(2018년)KAKAO BLIND RECRUITMENT 기출 문제.
-
map 컨테이너를 사용해서 풀이했다.
-
풀고나면 그렇게 어려운 문제는 아니였다.
-
코딩 테스트를 보기전에 지레 겁부터 먹으면 풀 수 있는 것도 못 푸는것 같다.