https://www.welcomekakao.com/learn/courses/30/lessons/42888

 

코딩테스트 연습 - 오픈채팅방

오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오

www.welcomekakao.com

#include <string>
#include <vector>
#include <queue>
#include <map>
 
using namespace std;
 
vector<string> solution(vector<string> record) {
    vector<string> answer;
    queue<pair<string, string>> q;
    map<string, string> m;
    for (int i = 0; i < record.size(); i++)
    {
        string tmp;
        vector<string> v;
        for (int j = 0; j < record[i].size(); j++) {
            if (record[i][j] == ' ') {
                v.push_back(tmp);
                tmp.clear();
            }
            else tmp.push_back(record[i][j]);
        }
        v.push_back(tmp);
        if (v[0] == "Change") {
            m[v[1]] = v[2];
        }
        else if (v[0] == "Leave")
            q.push(make_pair(v[0], v[1]));
        else {
            q.push(make_pair(v[0], v[1]));
            m[v[1]] = v[2];
        }
    }
    while (!q.empty())
    {
        string x = q.front().first;
        string y = q.front().second;
        string result;
        q.pop();
        if (x == "Enter")
            result = m[y] + "님이 들어왔습니다.";
        else
            result = m[y] + "님이 나갔습니다.";
 
        answer.push_back(result);
    }
     
    return answer;
}

+ Recent posts