코딩 테스트/Baekjoon

S2 1927. 최소 힙

  • -
728x90
반응형

문제 보기 :  1927번: 최소 힙


문제

  • 정답률 : 49%


작성 코드

import heapq, sys
input = sys.stdin.readline

T = int(input())
heap = []
for _ in range(T):
    a = int(input())
    if a > 0:
        heapq.heappush(heap,a)
    elif a == 0 and heap:
        minv = heapq.heappop(heap)
        print(minv)
    elif a == 0 and not heap:
        print(0)

풀이

heapq와 sys를 충분히 다룰 수 있다면 쉬운 문제였다.

T로 큰 수를 받을 수 있기 때문에 sys 라이브러리로 값들을 빠르게 읽을 수 있도록 처리했고, heap은 항상 최솟값을 출력한다는 특성을 활용했다. 만약 최대값을 구해야한다면, heap에 저장할 때 음수로 변환 후 저장하고, 출력할 때 다시 -1을 곱해 출력하면 된다. 

320x100
728x90

'코딩 테스트 > Baekjoon' 카테고리의 다른 글

S3 14501. 퇴사  (0) 2024.11.10
G4 14502. 연구소  (0) 2024.11.09
S3 1966. 프린터 큐  (0) 2024.11.07
S3 15652. N과 M (4)  (0) 2024.11.07
S3 11727. 2×n 타일링 2  (0) 2024.11.07
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.