코딩 테스트/Baekjoon

S2 11279. 최대 힙

  • -
728x90
반응형

문제 보기 :  11279번: 최대 힙


문제

  • 정답률 : 49%


작성 코드

import heapq, sys
input = sys.stdin.readline

k = int(input())
h = []
heapq.heapify(h)
for _ in range(k):
    num = int(input())
    if num == 0 and not h:
        print(0)
    elif num == 0 and h:
        heapq.heappush(h,-num)
        a = -heapq.heappop(h)
        print(a)
    else:
        heapq.heappush(h,-num)

풀이

입력량이 많기 때문에 sys로 데이터를 한번에 읽어올 수 있도록 처리했고,
heapq는 최소값을 출력하는데 이 문제에서는 최대값을 출력해야해서 값을 입력할 때 아예 음수로 변경해서 저장한 뒤, 최소값을 출력하도록 했다.
그러면 [1,2,3,4,5]에서 원래는 1이 뽑혔다면, [-1,-2,-3,-4,-5]에서는 -5가 뽑히고, 이 값을 원래 부호로 바꾸면 최댓값이 된다는 원리를 사용했다.
320x100
728x90

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

S2 1182. 부분수열의 합  (0) 2024.11.22
G5 10026. 적록색약  (0) 2024.11.19
G5 2447. 별 찍기 - 10  (0) 2024.11.17
S2 18870. 좌표 압축  (0) 2024.11.16
S3 2193. 이친수  (0) 2024.11.15
Contents

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

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