Algorithm
2019 KAKAO BLIND RECRUITMENT오픈채팅방
이무쿤
2020. 9. 9. 13:54
반응형
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;
}
반응형