PritorityQueue 2개를 사용해서 푸는 방법도 생각났지만
효율테스트를 안한다면 이방법도 간단할것 같아서 List를 이용해서 풀었다.
내림차순으로 정렬된 List에서 가장큰값이 0번째 index, 가장 작은 값을 마지막 index로 풀었다.
import java.util.*;
class Num implements Comparable<Num>{
int num;
public Num(int num){
this.num=num;
}
public int compareTo(Num o){
return o.num-num;
}
public String toString(){
return num+"";
}
}
class Solution {
public int[] solution(String[] operations) {
int[] answer = {0,0};
List<Num>dq = new ArrayList();
for(int i=0; i<operations.length; i++){
String [] oper = operations[i].split(" ");
if("I".equals(oper[0])){
dq.add(new Num(Integer.parseInt(oper[1])));
Collections.sort(dq);
}else{
if(dq.size()==0){
continue;
}
if("D 1".equals(operations[i])){
dq.remove(0);
}else{
dq.remove(dq.size()-1);
}
}
}
if(dq.size()!=0){
answer[0]=Integer.parseInt(String.valueOf(dq.get(0)));
answer[1]=Integer.parseInt(String.valueOf(dq.get(dq.size()-1)));
}
return answer;
}
}