https://www.acmicpc.net/problem/7785
풀이법
1) C++의 장점인 STL을 활용하였다.
2) map을 활용한다면 쉽게 풀 수 있다. 중복이 불가능하다는 점을 이용하여 map 객체에 값을 넣어둔다.
3) auto로 반복하여, 역순으로 출력하기 위해서 rbegin() 과 rend()를 사용하였다.
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <stack>
#include <cstring>
#include <queue>
#include <set>
#include<map>
using namespace std;
int n;
map<string,int> m;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cin >> n;
for (int i = 0; i < n; i++)
{
string s1, s2;
cin >> s1 >> s2;
if (s2 == "enter")
{
m[s1]++;
}
else
{
m.erase(s1);
}
}
for (auto i = m.rbegin(); i != m.rend(); i++)
{
cout << i->first << "\n";
}
}
'Coding_Test_C++' 카테고리의 다른 글
BaekJoon 9205번: 맥주 마시면서 걸어가기(C++) (0) | 2021.06.20 |
---|---|
BaekJoon 1706번: 크로스워드(C++) (0) | 2021.06.18 |
BaekJoon 1302번: 베스트셀러 (0) | 2021.06.15 |
BaekJoon 16953번: A->B(C++) (0) | 2021.06.13 |
BaekJoon 10825번: 국영수(C++) (0) | 2021.06.12 |