function solution(operations) {
let que = [];
let answer = [];
//들어온 연산 순서대로 que에 작업을 해줌
operations.map((o) => {
const isInput = o.slice(0, 1) === 'I';
//'I'로 시작하는 명령일 경우
if(isInput) {
//들어온 숫자 큐
que.push(o.slice(2));
//오름차순으로 정렬
que.sort((a, b) => a - b);
//'D'로 시작하는 명령이면서 que는 빈 que가 아님(빈 큐인 경우에는 연산을 무시하라고 문제에 나와있음)
} else if (!isInput && que.length !== 0){
const deleteMax = o.slice(2) === '1';
if(deleteMax) {
//최대 값인 경우 뒤에서 pop
que.pop();
} else {
//최소 값인 경우 앞에서 shift
que.shift();
}
}
});
//큐가 비었을 경우에는 [0, 0]으로 return 아닌 경우에는 [최대값,최소값]으로 return
return que.length === 0? [0, 0] : [parseInt(que[que.length-1]), parseInt(que[0])];
}