본문 바로가기
알고리즘/프로그래머스

[ 프로그래머스 / 문자열 ] 오픈채팅방

by 뎁꼼 2020. 7. 1.

1. 문제


 

 

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

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

programmers.co.kr

 

 

2. 소스코드


- string stream이란걸 처음 앎

- 이걸 쓰면 정말 쉽다.

 

소스코드

#include <string>
#include <cstring>
#include <vector>
#include <unordered_map>
#include <iostream>
#include <sstream>

using namespace std;

vector<string> solution(vector<string> record) {
    vector<string> answer;
    unordered_map<string, string> map;
    
    for (string str : record) {
        stringstream st(str);
        string cmd;
        string Id;
        string nick;
        st >> cmd;
        st >> Id;
        st >> nick;
        if(cmd != "Leave"){
            map[Id] = nick;
        }
    }
    for (string str : record) {
        stringstream st(str);
        string cmd;
        string id;
        st >> cmd;
        st >> id;
        if(cmd == "Enter"){
            answer.push_back(map[id]+"님이 들어왔습니다.");
        }
        else if(cmd == "Leave") 
            answer.push_back(map[id]+"님이 나갔습니다.");       
    }
 
    return answer;
}