728x90
문제 7785번
https://www.acmicpc.net/problem/7785
map을 사용하여 회사에 들어온 사람을 넣어주고, 떠난 사람은 지워준다. 여기서 map의 default는 오름차순이기 때문에 역순으로 출력하기 위해서 greater<>을 사용해준다. 그렇게 반복문을 완료하면 해당 map의 첫번째 값들을 순서대로 출력해주면 된다.
#include <iostream>
#include <map>
using namespace std;
int main() {
int n;
map<string, string, greater<string>> m;
cin >> n;
for (int i = 0; i < n; i++) {
string name, info;
cin >> name >> info;
if (info == "enter") {
m.insert(make_pair(name, info));
}
else if (info == "leave") {
m.erase(name);
}
}
for (auto result : m) {
cout << result.first << '\n';
}
return 0;
}
728x90
'백준 > C++' 카테고리의 다른 글
[C++] 백준 28278번 - 스택 2 (0) | 2024.06.16 |
---|---|
[C++] 백준 11478번 - 서로 다른 부분 문자열의 개수 (0) | 2024.06.14 |
[C++] 백준 14425번 - 문자열 집합 (1) | 2024.06.12 |
[C++] 백준 11721번 - 열 개씩 끊어 출력하기 (0) | 2024.06.12 |
[C++] 백준 9012번 - 괄호 (0) | 2024.06.11 |