• TOC {:toc}

이 글은 백준 온라인 저지의 1927번 문제를 파이썬(Python)으로 풀이한 것을 모아놓은 글입니다.

일종의 연습 기록이며 제가 정답을 받은 코드와 참고할만한 다른 코드를 같이 기록합니다. 필요한 경우 코드에 대한 해설을 기록합니다만 코드는 통과했어도 해설은 틀릴 수 있기 때문에 가볍게 참고해주시길 부탁드립니다. 피드백은 편하신 방법으로 자유롭게 주시면 감사하겠습니다.

2021.04.28

메모리 시간 코드 길이
34700 KB 160 ms 236 B
단계 시작 시각 끝난 시각 걸린 시간
문제 이해 22:08:35 22:08:40
풀이 생각 22:08:42 22:09:39
코딩 22:09:40 22:13:21
import sys
from heapq import heappush, heappop
input = lambda: sys.stdin.readline().rstrip()

H = []
for _ in range(int(input())):
    i = int(input())
    if i:
        heappush(H, i)
    else:
        print(heappop(H) if H else 0)

아이디어 & 풀이

heapq 라이브러리를 사용한다.

참고 답안

from heapq import heappush, heappop

H = []
input()
for n in map(int, sys.stdin):
    heappush(H, n) if n else print(H and heappop(H) or 0)

아이디어 & 풀이

heapq로 heap 자료구조를 사용한다.

  • import를 여러 번 적지 않고 라이브러리를 쉼표로 구분해서 한꺼번에 import 할 수도 있다.

readline()을 사용하지 않고 for문에 sys.stdin을 돌려 stdin에 입력이 있을 때마다 실행하게 할 수 있다.

  • 처음 입력받는 N은 쓸 일이 없기 때문에 input()만 작성하고 끝낸다.

입력이 0일 경우에 대해

  • heappop(H) if H else 0H and heappop(H) or 0으로 작성할 수 있다.