목차

     

     


     

     

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

     

     

    https://www.acmicpc.net/problem/7785

     

    7785번: 회사에 있는 사람

    첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는

    www.acmicpc.net

     


     

     

    해결전략

     

    set을 사용.

    key값에 사람 이름을 넣고 찾아서 접근 후 제거.

     

     


     

    코드

     

    #include <iostream>
    #include <string>
    #include <map>
    #include <algorithm>
    using namespace std;
    
    int main()
    {	
        ios::sync_with_stdio(false);
    	cin.tie(NULL);
        int n;
        cin >> n;
    
        map<string, string> mp;
        string name, inout;
    
        for (int i = 0; i < n; i++) {
            cin >> name >> inout;
    
            if (inout == "enter") {
                mp[name] = inout;
            }
            else if (inout == "leave") {
                mp.erase(name);
            }
        }
    
        for (auto it = mp.rbegin(); it != mp.rend(); it++) {
            cout << it->first << "\n";
        }
    
        return 0;
    }