티스토리 뷰

오픈채팅방


해결 방법

istringstream를 이용하면 공백을 token으로 분리할 수 있습니다. 

그리고 map을 통해서 <유저아이디 ,닉네임>으로 Key, Value를 잡고

Enter와 Change를 만날때마다 계속해서 유저아이디의 닉네임을 계속 바꿔줍니다.

그리고 다시 처음부터 해서 바꿔진 유저아이디+메시지로 반환해주면 됩니다.


소스 코드

#include <string>
#include <vector>
#include <sstream>
#include <map>
using namespace std;
vector<string> solution(vector<string> record) {
	vector<string> answer;
	vector<vector<string>> log(record.size(),vector<string>(3));
	map<string,string> user;
	
	for (int i = 0; i < record.size(); i++) {
		istringstream iss(record[i]);
		iss >> log[i][0];
		iss >> log[i][1];
		iss >> log[i][2];
		if (log[i][0]=="Enter" || log[i][0]=="Change"){
			user[log[i][1]]=log[i][2];
		}
	}
	for (int i = 0; i < log.size(); i++) {
		if (log[i][0] == "Enter") {
			answer.push_back(user[log[i][1]] + "님이 들어왔습니다.");
		}
		else if (log[i][0] == "Leave") {
			answer.push_back(user[log[i][1]] + "님이 나갔습니다.");
		}
	}
	return answer;
}


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함