이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다.
명령어 | 수신 탑(높이) |
---|---|
I 숫자 | 큐에 주어진 숫자를 삽입합니다. |
D 1 | 큐에서 최댓값을 삭제합니다. |
D -1 | 큐에서 최솟값을 삭제합니다. |
이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요.
function solution(operations) {
const answer = [];
for (operation of operations) {
operation = operation.split(" ");
operation[0] === "I"
? answer.push(Number(operation[1]))
: operation[1] === "-1"
? answer.shift()
: answer.pop();
answer.sort((a, b) => a - b);
}
if (answer.length === 0) return [0, 0];
else return [answer[answer.length - 1], answer[0]];
}
Lv3 문제라서 효율성 부분에서 조금 더 생각해야 될 줄 알았는데, 조건과 정렬만으로 간단하게 해결되는 문제였다.