알고리즘

[프로그래머스/2019 KAKAO/C++] 오픈채팅방

데메즈 2023. 1. 12. 14:06
728x90
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/42888

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

#include <string>
#include <vector>
#include <map>
#include <algorithm>
#include <iostream>
#include <sstream>

using namespace std;

vector<string> solution(vector<string> record) {
    vector<string> answer, state;
    map<string, string> user;
    
    for(int i=0; i<record.size(); i++){
        string str[3];
        string token;
        stringstream ss(record[i]);
        
        int index = 0;
        while(ss >> token)
            str[index++] = token;
        
        if(str[0] == "Enter"){
            state.push_back("님이 들어왔습니다.");
            answer.push_back(str[1]);
            user[str[1]] = str[2];
        } else if(str[0] == "Leave") {
            state.push_back("님이 나갔습니다.");
            answer.push_back(str[1]);
        } else { // change
            user[str[1]] = str[2];
        }
    }
    
    for(int i=0; i<answer.size(); i++)
        answer[i] = user[answer[i]] + state[i];
    
    return answer;
}
728x90
반응형