본문 바로가기
Algorithm

[자료구조/힙] 백준 1927 최소 힙 - Python

by jangThang 2022. 2. 20.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    1927번: 최소 힙

    첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     힙(Heap) 자료구조를 구현해서 푸는 문제입니다.

     

    2022.02.20 - [Algorithm] - [Algorithm] 힙(heap), 최소/최대로 정렬하는 우선순위 큐

     

    [Algorithm] 힙(heap), 최소/최대로 정렬하는 우선순위 큐

     그래프의 트리 구조 중 하나인 '힙'과 구현 방법에 대해 알아보고, 그와 관련된 우선순위 큐도 살펴보겠습니다. [ Contents ] 1. 완전 이진트리(Complete Binary Tree) 완전 이진트리: 왼쪽부터 오른쪽으

    star7sss.tistory.com

     힙 자료구조 설명과 구현 코드는 위 글에서 보실 수 있습니다.

     

     

     

    3. 코드

    import sys
    import heapq
    input = sys.stdin.readline
    
    N = int(input())
    heap = []
    
    for _ in range(N):
        x = int(input())
        # x가 0이 아니면 push
        if x != 0:
            heapq.heappush(heap, x)
    
        # x가 0이고 비어있지 않으면 pop
        elif heap:
            print(heapq.heappop(heap))
    
        # x가 0이고 비어있으면 0 출력
        else:
            print(0)

     x가 0이 아니면 push하고, 0이고 비어있지 않으면 pop합니다.

     heap은 빈 리스트면 0(False)를 반환하고 비어있지 않으면 True를 반환합니다.

     

     

    star가 되고나서 Tistory

    반응형

    댓글