문제
- 설명: 적당한 값이 입력되고 가장 작은 값을 출력해야할 때 작은 값을 출력하라
풀이
- 간단히 Python의 heap을 이용하면 되는 문제이다.
queue
모듈의PriorityQueue
를 활용했다.
회고
- 오늘의 회고는 아니지만 어제의 관련 문제를 얘기하자면
[<type>] * n
는<type>
을 얕은 복사를 한다.- 따라서 $1 \times N$ 배열 생성할 때
a = [[]] * n
의 문법은 단순히 레퍼런스를 복사하기 때문에 a[0].append(1)
는[[1],[1],[1], ... [1]]
의 결과를 야기한다.- 각 열이 독립적인 것이 아니라 같은 객체를 가르킨다는 뜻!
- 따라서 $1 \times N$ 배열 생성할 때
- 각 행마다 모두 다른 값을 입력하고 싶다면 list comprehension이나 직접 for문을 사용하여 객체를 새로 생성해야한다.
- 이는
PriorityQueue
도 마찬가지이다!
Code
# Baekjoon01927.py
import sys
input = sys.stdin.readline
from queue import PriorityQueue
n = int(input())
pq = PriorityQueue()
for _ in range(n):
num = int(input())
if num == 0:
print((pq.get() if pq.qsize() else 0))
else:
pq.put(num)
필수 해시태그: # # # # #
'Problem Solving > 항해99' 카테고리의 다른 글
99클럽 코테 스터디 21일차 TIL + Backtracking, Floyd-Warshall (1) | 2024.11.18 |
---|---|
99클럽 코테 스터디 20일차 TIL + 구현 (1) | 2024.11.17 |
99클럽 코테 스터디 18일차 TIL + Backtracking (6) | 2024.11.15 |
99클럽 코테 스터디 17일차 TIL + 오늘의 학습 키워드 (3) | 2024.11.13 |
99클럽 코테 스터디 16일차 TIL + 비둘기집 원리 (7) | 2024.11.13 |