728x90
<문제 링크>
https://www.acmicpc.net/problem/11286
<문제 풀이>
1. 최솟값이라는 우선순위대로 출력하므로 힙 사용
<코드>
#내코드
#17분/40분
import heapq
import sys
input = sys.stdin.readline
result = []
queue = []
n = int(input())
for i in range(n):
x = int(input())
if x != 0:
heapq.heappush(queue,[abs(x),x//abs(x)])
else:
if queue==[]:
print(0)
else:
result = heapq.heappop(queue)
print(result[0]*result[1])
#패스트캠퍼스 답
import sys
input = sys.stdin.readline
import heapq
heap = []
n = int(input())
for i in range(n):
x = int(input())
if x==0:
if len(heap)==0:
print(0)
else:
absolute, original = heapq.heappop(heap)
print(original)
else:
heapq.heappush(heap,(abs(x),x))
'두두의 알고리즘 > 문제' 카테고리의 다른 글
[손코딩] 문제 1~3 (0) | 2022.08.31 |
---|---|
[기타] 릿코드 Easy 20 'Valid Parentheses' (Python) (0) | 2022.06.15 |
[기타] 릿코드 Easy 1816 'Truncate Sentence' (Python) (0) | 2022.06.15 |
[크루스칼] 백준 2887번 '행성 터널' (Python) (0) | 2022.04.12 |
[크루스칼] 난이도2, University of Ulm Local Contest '어두운 길' (Python) (0) | 2022.04.06 |