import heapq, sys
def BOJ1927() :
n = int(sys.stdin.readline())
list = []
for _ in range(n) :
command = int(sys.stdin.readline())
if command == 0 :
if len(list) == 0 :
print(0)
else :
print(heapq.heappop(list))
else :
heapq.heappush(list, command)
BOJ1927()
접근 방법 :
1. 배열에 값을 넣고 매번 배열을 정렬할수 없으므로 heap을 사용하자
2. command가 0일때 와 아닐때 0일때는 비어있는지 아닌지만 판단해서 값을 잘 반환해주면 된다
장애물 이였던 것 :
1. 힙의 쓰임새가 익숙치 않았다.
https://www.acmicpc.net/problem/1927
1927번: 최소 힙
첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0
www.acmicpc.net
'알고리즘' 카테고리의 다른 글
그룹 단어 체커 [백준 - 1316] - python (0) | 2022.01.10 |
---|---|
색종이 만들기[백준 2630] - python (0) | 2022.01.08 |
숨바꼭질 4 (0) | 2022.01.06 |
숨바꼭질 [백준 1697] - python (0) | 2022.01.05 |
케빈 베이컨의 6단계 법칙 (0) | 2022.01.04 |