즐거운 PS 👩‍💻🥰

[백준-파이썬] 11279: 최대 힙

dalin❤️ 2022. 4. 1. 22:37

https://www.acmicpc.net/problem/11279

 

11279번: 최대 힙

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

www.acmicpc.net

예전 코드(시간 초과)

import heapq as hq

N=int(input())
a = []
for _ in range(N):
    n = int(input())
    if n == 0:
        if len(a) == 0:
            print(0)
        else:
            tmp=-hq.heappop(a)  # 루트 노드 값
            print(tmp)
    else:
        hq.heappush(a, -n)

-> 잘 짜서 놀랐다(??)  ㅋㅋ 파이썬의 자료구조 우선순위 큐를 사용하고! heapq는 작은 값이 먼저 나오는 최소 힙인데, 우리는 최대 힙이 필요하니까 -1을 곱한 값을 hq에 heappush하고, -1곱한 값을 출력하고.. 잘했는데?!!

방금 푼 코드(맞았습니다!)

import heapq as hq
import sys

input= sys.stdin.readline

N = int(input())
a = []
for _ in range(N):
    n = int(input())
    if n == 0:
        if len(a) == 0:
            print(0)
        else:
            tmp = -hq.heappop(a)
            print(tmp)
    else:
        hq.heappush(a, -n)

import sys.

input = sys.stdin.readline을 더하니 맞았다..

 

sys 라이브러리에 관한 ..글... 

https://wikidocs.net/33#sys

 

05-6 라이브러리

이제 파이썬 프로그래밍 능력을 높여 줄 더 큰 날개를 달아 보자. 전 세계의 파이썬 사용자들이 만든 유용한 프로그램을 모아 놓은 것이 바로 파이썬 라이브러리이다.

wikidocs.net

https://docs.python.org/ko/3/library/sys.html 

 

sys — 시스템 특정 파라미터와 함수 — Python 3.10.4 문서

sys — 시스템 특정 파라미터와 함수 이 모듈은 인터프리터에 의해 사용되거나 유지되는 일부 변수와 인터프리터와 강하게 상호 작용하는 함수에 대한 액세스를 제공합니다. 항상 사용 가능합니

docs.python.org

 

728x90