[Python] λ°±μ€ 11286 μ λκ° ν (Heapq)


π λ¬Έμ
μ λκ° νμ λ€μκ³Ό κ°μ μ°μ°μ μ§μνλ μλ£κ΅¬μ‘°μ΄λ€.
λ°°μ΄μ μ μ x (x ≠ 0)λ₯Ό λ£λλ€.
λ°°μ΄μμ μ λκ°μ΄ κ°μ₯ μμ κ°μ μΆλ ₯νκ³ , κ·Έ κ°μ λ°°μ΄μμ μ κ±°νλ€. μ λκ°μ΄ κ°μ₯ μμ κ°μ΄ μ¬λ¬κ°μΌ λλ, κ°μ₯ μμ μλ₯Ό μΆλ ₯νκ³ , κ·Έ κ°μ λ°°μ΄μμ μ κ±°νλ€.
νλ‘κ·Έλ¨μ μ²μμ λΉμ΄μλ λ°°μ΄μμ μμνκ² λλ€.
μ λ ₯
첫째 μ€μ μ°μ°μ κ°μ N(1≤N≤100,000)μ΄ μ£Όμ΄μ§λ€. λ€μ Nκ°μ μ€μλ μ°μ°μ λν μ 보λ₯Ό λνλ΄λ μ μ xκ° μ£Όμ΄μ§λ€. λ§μ½ xκ° 0μ΄ μλλΌλ©΄ λ°°μ΄μ xλΌλ κ°μ λ£λ(μΆκ°νλ) μ°μ°μ΄κ³ , xκ° 0μ΄λΌλ©΄ λ°°μ΄μμ μ λκ°μ΄ κ°μ₯ μμ κ°μ μΆλ ₯νκ³ κ·Έ κ°μ λ°°μ΄μμ μ κ±°νλ κ²½μ°μ΄λ€. μ λ ₯λλ μ μλ -231λ³΄λ€ ν¬κ³ , 231λ³΄λ€ μλ€.
μΆλ ₯
μ λ ₯μμ 0μ΄ μ£Όμ΄μ§ νμλ§νΌ λ΅μ μΆλ ₯νλ€. λ§μ½ λ°°μ΄μ΄ λΉμ΄ μλ κ²½μ°μΈλ° μ λκ°μ΄ κ°μ₯ μμ κ°μ μΆλ ₯νλΌκ³ ν κ²½μ°μλ 0μ μΆλ ₯νλ©΄ λλ€.
μμ μ λ ₯ 1
18
1
-1
0
0
0
1
1
-1
-1
2
-2
0
0
0
0
0
0
0
μμ μΆλ ₯ 1
-1
1
0
-1
-1
1
1
-2
2
0
π νμ΄
π¬ Code
import sys, heapq
input = sys.stdin.readline
h = []
for i in range(int(input())):
x = int(input())
if x != 0:
heapq.heappush(h, (abs(x), x))
else:
if not h:
print(0)
else:
print(heapq.heappop(h)[1])
π‘ Solution
heapqμ ννμ μ½μ νλ©΄ νν 첫λ²μ§Έ μμλ₯Ό κΈ°μ€μΌλ‘ μ λ ¬λ©λλ€. μ΄ λ¬Έμ λ μ λκ°μ κΈ°μ€μΌλ‘ μ€λ¦μ°¨μ μ λ ¬μ ν΄μ€μΌ νλ―λ‘ ννμ μ΄μ©νμ΅λλ€. (abs(x), x)λ‘ μ λκ°κ³Ό λ³Έλ κ°μ λ¬Άμ΄μ heapqμ λ£μ΄μ£Όκ³ , popν λλ heapq.heappop(h)[1]λ‘ λ³Έλ κ°λ§ μΆλ ₯ν΄μ£Όλ©΄ λ©λλ€.