본문 바로가기

Algorithm

2019 KAKAO BLIND RECRUITMENT오픈채팅방

반응형

programmers.co.kr/learn/courses/30/lessons/42888

 

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

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

programmers.co.kr

 

 

map을 활용해서 간단히 구현할 수 있다.

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


using namespace std;

map<string,string> name;
 vector<string> answer;

vector<string> solution(vector<string> record) {
    
    int size = record.size();
    for(int i = 0; i < size; i++)
    {
        int parsing_count = 0;
        int size2 = record[i].size();
        
        string id = "";
        string nick = "";
        string state = "";
        for(int j = 0; j <  size2; j++)
        {
            if(record[i][j] == ' ')
            {
                parsing_count++;
                continue;
            }
            if(parsing_count == 1)
            {
                id += record[i][j];
            }
            else if(parsing_count == 2)
            {
                nick += record[i][j];
            }
            else if(parsing_count == 0)
            {
                state += record[i][j];
            }
        }
        
        if(state == "Enter")
        {
            name[id] = nick;
        }
        else if(state == "Change")
        {
            name[id] = nick;
        }
    }
    
    for(int i = 0; i < size; i++)
    {
        int parsing_count = 0;
        int size2 = record[i].size();
        
        string id = "";
        string nick = "";
        string state = "";
        for(int j = 0; j <  size2; j++)
        {
            if(record[i][j] == ' ')
            {
                parsing_count++;
                continue;
            }
            if(parsing_count == 1)
            {
                id += record[i][j];
            }
            else if(parsing_count == 2)
            {
                nick += record[i][j];
            }
            else if(parsing_count == 0)
            {
                state += record[i][j];
            }
        }
        
        if(state == "Enter")
        {
           string str = name[id] + "님이 들어왔습니다.";
            answer.push_back(str);
        }
        else if(state == "Leave")
        {
            string str = name[id] + "님이 나갔습니다.";
            answer.push_back(str);
           
        }
    }
    
   
    return answer;
}
반응형