https://www.acmicpc.net/problem/7662
#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
#include <limits.h>
using namespace std;
int main() {
int T; cin >> T;
for (int t = 0; t < T; t++) {
int N; cin >> N;
map<int, int> m;
for (int i = 0; i < N; i++) {
char c; cin >> c;
int num; cin >> num;
if (c == 'I') {
m[num]++;
}
else if (c == 'D' && m.size() > 0) {
if (num < 0) {
m.begin()->second -= 1;
if (m.begin()->second == 0) {
m.erase(m.begin()->first);
}
}
else{
(--m.end())->second -= 1;
if ((--m.end())->second == 0) {
m.erase((--m.end())->first);
}
}
}
}
int maxest = INT_MIN;
int minest = INT_MAX;
if (m.size() > 0) {
minest = m.begin()->first;
maxest = (--m.end())->first;
cout << maxest << " " << minest << endl;
}
else {
cout << "EMPTY" << endl;
}
}
return 0;
}
'전공공부 > 코딩테스트' 카테고리의 다른 글
(c++) 백준 "1697) 숨바꼭질" (0) | 2022.08.05 |
---|---|
(c++) 백준 "1141)접두사" (0) | 2022.06.27 |
(c++) 백준 "1032) 명령 프롬프트" (0) | 2022.06.27 |
(c++) 프로그래머스 "오픈채팅방" (0) | 2022.06.23 |
(c++) 백준 "16928) 뱀과 사다리 게임" (0) | 2022.06.10 |