백준14235 - 크리스마스 선물 (힙) Python 본문
반응형
https://www.acmicpc.net/problem/14235
이 문제는 최대 힙을 활용하여 해결할 수 있는 문제다.
파이썬에서는 최대 힙을 제공하지 않지만, 선물의 가치를 음수로 저장하는 방법으로 최소 힙으로 최대 힙 구현이 가능하다.
이때 힙에 원소 저장 시 음수로 저장하고, 반환할 때 양수로 전환하여 반환한다는 것만 주의하면 된다.
전체 소스 코드
import sys
data_temp = sys.stdin if sys.platform == 'linux' else open('입력.txt', 'r')
input_data = data_temp.read().splitlines()
import heapq
def solution (data) :
int(data.pop(0))
pq, result = [], []
for v in data :
if v == '0' :
result.append(abs(heapq.heappop(pq))) if pq else result.append(-1)
else :
items = list(map(lambda x : -int(x), v.split()))
for item in items[1:] :
heapq.heappush(pq, item)
print('\n'.join(map(str, result)))
solution(input_data)
반응형
'개발 > algorithm' 카테고리의 다른 글
백준11404 - 플로이드 (플로이드 워셸) Python (0) | 2023.11.23 |
---|---|
프로그래머스 - Lv.3 순위 (플로이드-워셸) Python (0) | 2023.11.22 |
백준2234 - 성곽 (비트마스킹 & DFS) Python (1) | 2023.11.20 |
백준1194 - 달이 차오른다, 가자. (비트마스킹 & BFS) Python (1) | 2023.11.19 |
백준15787 - 기차가 어둠을 헤치고 은하수를 (비트마스킹) Python (0) | 2023.11.18 |
Comments