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

 

이 문제는 문자열 변수 2개를 받고 만약 enter이라면 set 자료형을 통해 넣어주고 leave이면 제거해주면 된다. 그 후에 역순으로 출력해주면된다.

 

정답코드

#include "iostream"
#include "set"
#include "string"

using namespace std;

set<string> s;
int main() {
    int n;
    cin >> n;

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

        if (action == "enter") {
            s.insert(name);  // 회사에 들어왔으면 set에 추가
        }
        else if (action == "leave") {
            s.erase(name);  // 나갔으면 set에서 제거
        }
    }

    // 역순으로 출력
    for (auto it = s.rbegin(); it != s.rend(); ++it) {
        cout << *it << '\n';
    }

    return 0;
}

+ Recent posts