11286. 절댓값 힙

sen·2021년 7월 29일
0

BOJ

목록 보기
21/38
post-thumbnail

문제

백준 11286번 절댓값 힙


풀이

새삼 sys.stdin.readline()의 중요성을 깨달았다...
진짜 엄청 차이나는구나
아무리 코드 고쳐도 계속 시간초과나서 환멸났는데
input()에서 sys.stdin.readline()으로 바꾸자마자 맞았습니다 뜨네;

heapq 모듈 이용해서 우선순위큐로 풀었다.
힙에 (절대값, 원래값) 쌍의 튜플로 push하면 절대값 순서대로, 절대값이 같으면 원래값 순서대로 정렬된다.

시간초과때문에 괜히 애먹은 문제다...

import heapq

n = int(input())
hq = []
for _ in range(n):
    x = int(sys.stdin.readline())
    if x == 0:
        if hq: print(heapq.heappop(hq)[1])
        else: print(0)
    else: heapq.heappush(hq, (abs(x), x))

부족한 점

앞으로는 한 줄씩 들어오는 입력값을 받을 때 sys.stdin.readline()을 사용하는 습관을 길들이자.

profile
공부 아카이브

0개의 댓글