[프로그래머스] 코딩테스트 연습 - 75

krkorklo·2022년 2월 23일
0

프로그래머스

목록 보기
75/78

level 3 - 이중우선순위큐

이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다.

  • I 숫자 큐에 주어진 숫자를 삽입합니다.
  • D 1 큐에서 최댓값을 삭제합니다.
  • D -1 큐에서 최솟값을 삭제합니다.

이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요.

입출력 예시
operations : ["I 7","I 5","I -5","D -1"]
-> [7,5]

function solution(operations) {
    var answer = [];
    operations.forEach((op) => {
        var [todo, num] = op.split(" ");
        if (todo == 'I') answer.push(Number(num));
        else {
            var tmp = (num == 1 ? Math.max(...answer) : Math.min(...answer))
            answer.splice(answer.indexOf(tmp), 1);
        }
    })
    return answer.length == 0 ? [0, 0] : [Math.max(...answer), Math.min(...answer)];
}

0개의 댓글