[プログラマー]双優先級キュー(Python Python Python Python Python Python Python Python Python)
👉 にじゅうゆうせんれつ
マイコード
from collections import defaultdict
import heapq as hq
def solution(operations):
max_h = []
min_h = []
dic = defaultdict(int)
for i in operations:
com, num = i.split(" ")
if com == "I":
hq.heappush(min_h, int(num))
hq.heappush(max_h, -int(num))
dic[int(num)] += 1
else:
while num == "-1" and min_h:
n = hq.heappop(min_h)
if dic[n] != 0:
dic[n] -= 1
break
while num == "1" and max_h:
n = hq.heappop(max_h)
if dic[-n] != 0:
dic[-n] -= 1
break
max = min = 0
while min_h:
n = hq.heappop(min_h)
if dic[n] != 0:
dic[n] -= 1
min = n
break
while max_h:
n = hq.heappop(max_h)
if dic[-n] != 0:
dic[-n] -= 1
max = -n
break
return [max, min]
チップ
問題を解いた後、いつも人の解答を見て、最も良い解答を得るのはとても簡潔で、だから手でいくつかのケースを試して、間違いのコードであることを発見しました.
この問題はテスト例が不足して合格したが,上記のコードのようにさらなる同期作業が必要である.
Reference
この問題について([プログラマー]双優先級キュー(Python Python Python Python Python Python Python Python Python)), 我々は、より多くの情報をここで見つけました https://velog.io/@coding_egg/프로그래머스-문제명-python-파이썬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol