[백준 7785] 회사에 있는 사람

alsry._.112·2023년 9월 17일
0

백준

목록 보기
57/102

🔗문제 풀러가기
단계별로 풀어보기 단계 14의 3번째 문제이다.

문제 분석

Map 컨네이너를 이용해 문제를 해결하였다.

코드

#include <iostream>
#include <map>
using namespace std;

int main()
{
	int n;
	map<string,string,greater<string>> _map;

	cin >> n;
	
	for (int i = 0; i < n; i++)
	{
		string name, state;
		cin >> name >> state;

		if (state == "enter")
		{
			_map.insert(make_pair(name, state));
		}
		else if (state == "leave")
		{
			_map.erase(name);
		}
	}

	for (auto a: _map)
	{
		cout << a.first << "\n";
	}
}

해석

  1. 입력받은 수 만큼 반복문을 돌며 이름과 상태를 입력받는다.
  2. 만약에 입력받은 상태가 enter라면 map에 추가하고, leave라면 map에서 삭제한다.
  3. 이렇게 얻은 map을 전부 출력해주면 끝!

    사전의 역순으로 출력해야 하므로 map을 선언할때 마지막 인자로
    greater<'string>를
    추가해주었다.

profile
소통해요

0개의 댓글