https://school.programmers.co.kr/learn/courses/30/lessons/42628
import java.util.Collections;
import java.util.PriorityQueue;
class Solution {
public int[] solution(String[] operations) {
PriorityQueue<Integer> maxQueue = new PriorityQueue<>(Collections.reverseOrder());
PriorityQueue<Integer> minQueue = new PriorityQueue<>();
for (int i = 0; i < operations.length; i++) {
String[] input = operations[i].split(" ");
if (input[0].equals("D")) {
if (input[1].equals("1")) {
if (!maxQueue.isEmpty()) {
int tMax = maxQueue.poll();
minQueue.remove(tMax);
}
}
else {
if (!minQueue.isEmpty()) {
int tMin = minQueue.poll();
maxQueue.remove(tMin);
}
}
}
else {
int temp = Integer.parseInt(input[1]);
maxQueue.add(temp);
minQueue.add(temp);
}
}
if (maxQueue.isEmpty()) {
return new int[]{0, 0};
}
else {
return new int[] {maxQueue.peek(), minQueue.peek()};
}
}
}