중복 없이 문자열을 역순으로 저장하는 문제이다.
STL 자료구조 중 map을 활용하여 문제를 해결했습니다.
#include<iostream>
#include<vector>
#include<map>
#include<string>
#include<algorithm>
using namespace std;
map<string, bool> g_enterSheet;
vector<string>output;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int n = 0;
cin >> n;
for (int i = 0;i < n;i++)
{
string _name;
string _condition;
cin >> _name >> _condition;
map<string, bool>::iterator iter = g_enterSheet.find(_name);
if (iter != g_enterSheet.end())
{
if (_condition != "enter")
{
g_enterSheet.erase(iter);
}
}
else
{
if (_condition == "enter")
{
g_enterSheet.insert({ _name,true });
}
}
}
map<string, bool>::iterator iter = g_enterSheet.begin();
for (;iter != g_enterSheet.end();iter++)
{
output.push_back((*iter).first);
}
for (int i = output.size()-1;i>=0;i--)
{
cout << output[i] << '\n';
}
return 0;
}