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

문제

백준 7785 문제 보기

접근 방법

set 자료구조를 사용해서 “enter”가 입력되면 set에 저장하고 “leave”가 입력되면 set에서 제거하는 식으로 구현한다.

코드

#include <iostream>
#include <vector>
#include <algorithm>
#include <set>

using namespace std;

int n;
vector<string> arr;
set<string> st;

int main() {
    cin >> n;

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

        if(v == "enter") {
            // 저장
            st.insert(s);
        } else {
            // 제거
            st.erase(s);
        }
    }

    for (auto it = st.begin(); it != st.end(); ++it) {
        arr.push_back(*it);
    }

    // 역순으로 정렬
    reverse(arr.begin(), arr.end());

    for(int i = 0; i < arr.size(); i ++) {
        cout << arr[i] << "\n";
    }
    return 0;
}
Share