programmers.co.kr/learn/courses/30/lessons/42888
누군가가 아이디를 바꾸면 마지막 출력에 바꾼 아이디들로 로그를 출력해야 한다.
그래서 먼저 키값의 중복이 안되는 map을 이용해서 Enter나 Change 상황에서 모든 user_id의 닉네임 값을 저장해 두었다.
그 후에 Enter, Leave의 로그를 answer에 넣어줬다. 이때 map에서 user_id의 닉네임을 찾아 넣어주는 방식으로 풀었다.
#include <string>
#include <vector>
#include <map>
#include <sstream>
using namespace std;
vector<string> solution(vector<string> record) {
vector<string> answer;
map<string, string> id;
vector<vector<string>> id_record;
int record_size = record.size();
for(int i=0;i<record_size;++i)
{
vector<string> temp_record;
stringstream ss(record[i]);
string k;
while(ss >> k){
temp_record.push_back(k);
}
if(temp_record[0] == "Enter" ||temp_record[0] == "Change" )
{
id[temp_record[1]] = temp_record[2];
}
id_record.push_back(temp_record);
}
for(int i=0;i<record_size;++i)
{
string temp_answer = "";
temp_answer += id[id_record[i][1]];
if(id_record[i][0] == "Enter")
{
temp_answer += "님이 들어왔습니다.";
}
else if(id_record[i][0] == "Leave")
{
temp_answer += "님이 나갔습니다.";
}
else
{
continue;
}
answer.push_back(temp_answer);
}
return answer;
}
'알고리즘 & 자료구조 > 프로그래머스' 카테고리의 다른 글
[C++/알고리즘] 프로그래머스 (두 개 뽑아서 더하기) (0) | 2020.10.08 |
---|---|
[C++/알고리즘] 프로그래머스 (다트게임) (0) | 2020.10.08 |
[C++/알고리즘] 프로그래머스 (JadenCase 문자열 만들기) (0) | 2020.09.25 |
[C++/알고리즘] 프로그래머스 (카펫) (0) | 2020.09.11 |
[C++/알고리즘] 프로그래머스 (프린터) (0) | 2020.09.10 |