문제 출처 : www.acmicpc.net/problem/11286
문제 해석 : 최소힙을 절댓값을 기준으로 생성하고 이를 구현하는 문제이다.
문제 풀이 : 파이썬에서 기본으로 제공하는 heapq를 이용하는데 이때 push, pop에 단순한 숫자말고 [절댓값, 부호]로 삽입하고 출력을 절댓값 * 부호로 함으로 해결할 수 있다.
가능한 다른 풀이 : 직접 힙을 구현하여 풀이 할 수 있다.
풀이 코드
import heapq
import sys
input = sys.stdin.readline
N = int(input())
Q = []
for _ in range(N):
num = int(input())
if num != 0:
if num < 0:
heapq.heappush(Q, [abs(num),-1])
else:
heapq.heappush(Q, [abs(num), 1])
else:
if Q:
temp, oper = heapq.heappop(Q)
print(temp*oper)
else:
print(0)
author : donghak park
contact : donghark03@naver.com
## 문제의 저작권은 백준 알고리즘 사이트에 있습니다. 혹시 문제가 되는 부분이 있으면 연락 바랍니다.
'📊알고리즘, 문제풀이 > 📈문제풀이 (PS)' 카테고리의 다른 글
[알고리즘][Python] 백준 11403 경로 찾기 문제 풀이 (0) | 2021.01.15 |
---|---|
[알고리즘][Python] 백준 11399 ATM 문제 풀이 (0) | 2021.01.15 |
[알고리즘][Python] 백준 10026 적록색약 문제 풀이 (0) | 2021.01.14 |
[알고리즘][Python] 백준 9461 파도반 수열 문제 풀이 (0) | 2021.01.14 |
[알고리즘][Python] 백준 9375 패션왕 신해빈 문제 풀이 (0) | 2021.01.14 |