[백준] 1927 최소 힙 - Java / Python
https://13months.tistory.com/151
위 문제와 똑같다.
Java
최대 힙 코드에서 reverseOrder()를 지워주면 된다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
PriorityQueue<Integer> q = new PriorityQueue<>();
for(int i=0; i<N; i++){
int command = Integer.parseInt(br.readLine());
if(command == 0){
if(q.isEmpty()){
sb.append(0).append('\n');
}else{
sb.append(q.poll()).append('\n');
}
}else{
q.offer(command);
}
}
System.out.println(sb);
}
}
Python
최대 힙을 구현하기 위해 값 대신 튜플을 입력했었는데, 최소 힙을 구현할 때는 값을 입력하면 된다.
import heapq
import sys
N = int(input())
heap = []
for i in range(N):
command = int(sys.stdin.readline())
if command == 0:
if heap:
print(heapq.heappop(heap))
else:
print(0)
else:
heapq.heappush(heap, command)
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 1655 가운데를 말해요 - Java / Python (0) | 2022.02.13 |
---|---|
[백준] 11286 절댓값 힙 - Java / Python (1) | 2022.02.13 |
[백준] 11279 최대 힙 - Java / Python (0) | 2022.02.13 |
[백준] 17413 단어 뒤집기 2 - Java / Python (0) | 2022.02.13 |
[백준] 18115 카드 놓기 - Java / Python (0) | 2022.02.12 |
댓글
이 글 공유하기
다른 글
-
[백준] 1655 가운데를 말해요 - Java / Python
[백준] 1655 가운데를 말해요 - Java / Python
2022.02.13 -
[백준] 11286 절댓값 힙 - Java / Python
[백준] 11286 절댓값 힙 - Java / Python
2022.02.13 -
[백준] 11279 최대 힙 - Java / Python
[백준] 11279 최대 힙 - Java / Python
2022.02.13 -
[백준] 17413 단어 뒤집기 2 - Java / Python
[백준] 17413 단어 뒤집기 2 - Java / Python
2022.02.13