PS

[백준/Python] (S2) 최대 힙 - 11279

MSHUN 2024. 3. 10.
반응형

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써서 최대 힙 만들기

🤔느낀 점

최대 힙

Baekjoon Online Judge

반응형

댓글