반응형
Baekjoon Online Judge의 11279번 최대 힙문제의 Python 풀이입니다.
11279번: 최대 힙
첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0
www.acmicpc.net
💻코드
import sys
import heapq
n = int(sys.stdin.readline()) # 입력받을 숫자의 개수
max_heap = [] # 최대 힙을 위한 빈 리스트
for _ in range(n): # n번 반복
num = int(sys.stdin.readline()) # 숫자 입력 받음
if num == 0: # 입력 받은 숫자가 0인 경우
if not max_heap: # 힙이 비어있으면
print(0) # 0 출력
else: # 힙에 데이터가 있으면
print(-1 * heapq.heappop(max_heap)) # 최대 힙이므로 부호를 바꿔서 출력
else: # 0이 아닌 숫자를 입력 받은 경우
heapq.heappush(max_heap, -1 * num) # 최대 힙 유지를 위해 부호를 바꿔서 힙에 추가
🧠풀이
heapq써서 최대 힙 만들기
🤔느낀 점
최대 힙

반응형
댓글