[Algorithm] 백준 11279 - 최대 힙 in Python(파이썬)

하이초·2022년 7월 14일
0

Algorithm

목록 보기
19/94
post-thumbnail

💡 백준 11279:

최대 힙 기본 구조 활용

🌱 코드 in Python

알고리즘: Max Heap

import sys, heapq

max_heap = []
n = int(sys.stdin.readline())
for i in range(n):
	num = int(sys.stdin.readline()) * -1
	if num == 0:
		print(heapq.heappop(max_heap) * -1 if max_heap else 0)
	else:
		heapq.heappush(max_heap, num)

이번 문제도 heapq 모듈을 활용하여 풀었다
heapq는 최소힙으로 구현되어 있기 때문에 최대힙을 풀기 위해서는 주어진 숫자에 -1을 곱하여
역순으로 list에 들어갈 수 있도록 하면 된다
출력 시에 다시 -1을 곱해 원래 숫자로 돌려주면 끝!


🧠 기억하자

  1. print(heapq.heapop(max_heap) * -1 if max_heap else 0)처럼 프린트문 안에서도 if - else 연산이 가능하다 띠용용 😮
  1. 그전까지는 배열에 값이 있는지 없는지 확인하기 위해 len(list) == 0 과 같은 조건문을 사용하였는데, 그냥 if list else로도 가능한 것이었다! boolean인건가..?

백준 11279 바로가기

profile
개발국대가 되는 그 날까지. 지금은 개발 응애.

0개의 댓글