7662 : 이중 우선순위 큐

풀이

multiset을 써서 풀었는데

map으로 풀어도 될 거 같고

아무튼 그냥 짜면 된다.

코드

#include <iostream>
#include <set>

using namespace std;

int main() {
    int t;
    cin >> t;
    while (t--) {
        int k;
        cin >> k;
        
        char c; int n;
        multiset<int> v;
        
        while (k--) {
            cin >> c >> n;
            if (c == 'I') {
                v.insert(n);
            }
            else if (c == 'D' && v.size() > 0) {
                if (n == -1) {
                    v.erase(v.begin());
                }
                else {
                    auto it = v.end();
                    it--;
                    v.erase(it);
                }
            }
        }

        if (v.size() == 0) {
            printf("EMPTY\n");

        } else {
            auto it = v.end();
            it--;
            printf("%d %d\n", *it, *v.begin());
        }
    }
    return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2018-09-17 12:19

Read more posts by this author