Programers : 오픈채팅방

김정욱·2021년 2월 3일
0

Algorithm - 문제

목록 보기
87/249

오픈채팅방

코드

#include <string>
#include <vector>
#include <map>
#include <sstream>
// 11:53 ~ 12:13
using namespace std;

vector<string> solution(vector<string> record) {
    vector<string> answer;
    // vector에 {행위, uid} 저장
    vector<pair<string,string>> v;
    // map에 {uid, 이름} 저장
    map<string, string> m;
    /* 행위, uid 저장 */
    for(int i=0;i<record.size();i++)
    {
        stringstream ss(record[i]);
        string behave, uid, name;
        ss >> behave;
        if(behave == "Leave"){
            ss >> uid;
        }else{
            ss >> uid;
            ss >> name;
            m[uid] = name;
        }
        if(behave != "Change") v.push_back({behave, uid});    
    }
    /* 정답 형식 만들기 */
    for(int i=0;i<v.size();i++)
    {
        string str = m[v[i].second] + "님이";
        if(v[i].first == "Enter"){
            str += " 들어왔습니다.";
        }else if(v[i].first == "Leave"){
            str += " 나갔습니다.";
        }
        answer.push_back(str);
    }
    return answer;
}
  • stringstream을 유용하게 쓸 수 있는 케이스!
profile
Developer & PhotoGrapher

0개의 댓글