티스토리 뷰
해결 방법
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; }
'알고리즘 > 프로그래머스(C++)' 카테고리의 다른 글
[프로그래머스/알고리즘]블록게임 (0) | 2019.03.09 |
---|---|
[프로그래머스/알고리즘]실패율 (0) | 2019.03.07 |
[프로그래머스/알고리즘] 무지의 먹방 라이브 (0) | 2019.03.07 |
[프로그래머스/알고리즘]길찾기 게임 (0) | 2019.03.07 |
[프로그래머스/알고리즘] 파일명 정렬 (0) | 2019.02.18 |