본문 바로가기

백준/C++

[C++] 백준 7785번 - 회사에 있는 사람

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