이든준 2022. 7. 19. 22:39

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


문제 접근~

1302번을 풀면서 map이라는 stl을 공부하게되었다. 이 문제를 보고 map으로 string pair로 관리해주면 편할 것 같은 생각이 들었다. 나는 enter일때 map에 넣고 leave일때 삭제하고 정렬만해주면 풀릴것같다고 생각해서 실행에 옮겼다.


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

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    map<string, string, greater<string>>m;
    int n;
    cin >> n;
    while (n--) {
        string cmd1, cmd2;
        cin >> cmd1 >> cmd2;
        if (cmd2 == "enter") {
            m.insert({ cmd1, cmd2 });
        }
        else if (cmd2 == "leave") {
            if (m.find(cmd1) != m.end()) {
                m.erase(cmd1);
            }
            else {}
        }
    }
    for (auto& i : m)
    {
        cout << i.first << "\n";
    }

}

느낀점: 생각보다 쉽게 풀려서 크게 느낀점은 없는것같다.