[プログラマ#JS]デュプレステージキュー


質問する
デュアルユーティリティープリアンブルhttps://programmers.co.kr/learn/courses/30/lessons/42628
に答える
二重優先度QとHipの問題ですが直接解けても解ける問題です
コード#コード#
function solution(operations) {
  let ans = [];
  let queue = [];

  operations.map((op) => {
    if (op[0] === "I") {
      let temp = parseInt(op.split(" ")[1]);
      queue.push(temp);
    } else if (op === "D -1") {
      if (queue.length === 0) return;
      let idx = queue.indexOf(Math.min.apply(null, queue));
      queue.splice(idx, 1);
    } else if (op === "D 1") {
      if (queue.length === 0) return;
      let idx = queue.indexOf(Math.max.apply(null, queue));
      queue.splice(idx, 1);
    }
  });

  if (queue.length === 0) {
    ans.push(0);
    ans.push(0);
  } else {
    ans.push(Math.max.apply(null, queue));
    ans.push(Math.min.apply(null, queue));
  }

  return ans;
}