#include <string>
#include <vector>
#include <queue>
using namespace std;
vector<int> solution(vector<string> operations) {
vector<int> answer;
priority_queue<int,vector<int>,greater<int>> upup;
priority_queue<int,vector<int>,less<int>> dodo;
queue<int> mid;
string temp;
int k=0,d=0;
for(int i=0;i<operations.size();i++){
if(operations[i][0]=='I'){
temp=operations[i].substr(2);
upup.push(stoi(temp));
dodo.push(stoi(temp));
mid.push(stoi(temp));
k++;
}
else if(operations[i]=="D 1"){
if(mid.empty()==1){continue;}
dodo.pop();
mid.pop();
d++;
}
else {
if(mid.empty()==1){continue;}
upup.pop();
mid.pop();
d++;
}
}
if(k==d){answer.push_back(0);
answer.push_back(0);
}
else{
answer.push_back(dodo.top());
answer.push_back(upup.top());
}
return answer;
}
입력값 〉 ["I 4", "I 3", "I 2", "I 1", "D 1", "D 1", "D -1", "D -1", "I 5", "I 6"]
기댓값 〉 [6, 5]
실행 결과 〉 실행한 결괏값 [6,3]이(가) 기댓값 [6,5]와(과) 다릅니다.