문제
https://programmers.co.kr/learn/courses/30/lessons/42888
해답
Stringstream과 hash를 이용해 풀이하였다.
#include <string>
#include <vector>
#include <iostream>
#include <sstream>
#include <unordered_map>
using namespace std;
unordered_map <string, string> nameMap;
class tans{
public:
string ac;
string h;
};
vector<string> solution(vector<string> record) {
string action, hash, name;
vector <tans> tanswer;
for (auto re : record) {
stringstream ss(re);
ss >> action >> hash >>name;
if (action == "Enter") {
nameMap[hash] = name;
tanswer.push_back({ action,hash });
} else if (action == "Leave") {
tanswer.push_back({ action,hash });
} else if (action == "Change") {
nameMap[hash] = name;
}
}
vector<string> answer;
for (int i = 0; i < tanswer.size(); i++) {
string realans = "";
if (tanswer[i].ac == "Enter") {
realans = nameMap[tanswer[i].h] + "님이 들어왔습니다.";
} else if (tanswer[i].ac == "Leave") {
realans = nameMap[tanswer[i].h] + "님이 나갔습니다.";
}
answer.push_back(realans);
}
return answer;
}
'Algorithm > 문제 풀이 (Problem Solving)' 카테고리의 다른 글
[C++, 완전탐색] 프로그래머스 양궁대회 (0) | 2022.04.07 |
---|---|
[C++, 문자열, 슬라이딩 윈도우] 프로그래머스 추석 트래픽 (0) | 2022.04.05 |
[C++, 문자열] 프로그래머스 다트게임 (0) | 2022.03.31 |
[C++, 문자열] 프로그래머스 신규 아이디 추천 (0) | 2022.03.23 |
[C++, 세그먼트 트리, 데이터추가 반영] 백준 2042번 구간 합 구하기 (0) | 2020.11.22 |
댓글