본문 바로가기

코딩테스트

[코딩테스트] 오픈채팅방

문제


코드

#define _CRT_SECURE_NO_WARNINGS
#include <string>
#include <vector>
#include <cstring>
#include <unordered_map>

using namespace std;

vector<string> split(string s, string divid);

vector<string> solution(vector<string> record) {
	vector<string> answer;

	unordered_map<string, string> userData;
	
	
	for (string action : record)
	{	
		vector<string> str = split(action, " ");
		string id;
		string name;

		if (str[0] != "Leave")
		{
			id = str[1];
			name = str[2];
			userData[id] = name;
		}
	}

	for (string action : record)
	{
		vector<string> str = split(action, " ");
		string inputStr;

		if (str[0] != "Change")
		{
			inputStr = userData[str[1]] + "님이 ";

			inputStr += str[0] == "Enter" ? "들어왔습니다." : "나갔습니다.";
			answer.emplace_back(inputStr);
		}
		
	}

	return answer;
}

vector<string> split(string s, string divid) 
{
	vector<string> v;
	char* c = strtok((char*)s.c_str(), divid.c_str());
	while (c) 
	{
		v.push_back(c);
		c = strtok(NULL, divid.c_str());
	}
	return v;
}

'코딩테스트' 카테고리의 다른 글

[코딩테스트] 더 맵게  (0) 2021.09.11
[코딩테스트] 숫자 문자열과 영단어  (0) 2021.09.08
[코딩테스트] 카펫  (0) 2021.08.22
[코딩테스트] 타겟 넘버  (0) 2021.08.20
[코딩테스트] 체육복  (0) 2021.08.13