백준 1927(최소 힙) - Python(파이썬) - 자료구조
반응형
예제 설명
왼쪽 그림은 0,12645678,1,2 이 입력 | 오른쪽 그림은 0,0,0,0,32 이 입력되었을 때 힙안 숫자와 출력 되는 구조
Python(파이썬)
import sys
import heapq
#연산의 개수
n = int(sys.stdin.readline())
heap=[]
for i in range(n):
#자연수 x 입력 받기
x=int(sys.stdin.readline())
#x가 0이 아닌 경우
if x!=0:
#힙에 x를 입력 넣기
heapq.heappush(heap,x)
#x가 0인 경우
else:
#힙에 아무것도 없는 경우
if len(heap)!=0:
#힙에서 가장 작은 값 출력
print(heapq.heappop(heap))
#힙에 값이 있는 경우
else:
print(0)
Java(자바)
자바에서는
최소 힙 : PriorityQueue<Integer> minHeap = new PriorityQueue<>();
최대 힙 : PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Collections.reverseOrder());
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
PriorityQueue<Integer> heap = new PriorityQueue<>();
for(int i=0;i<N;i++){
int val = Integer.parseInt(br.readLine());
if(val==0){
if(heap.isEmpty()) System.out.println(0);
else System.out.println(heap.poll());
}else{
heap.offer(val);
}
}
}
}
반응형
'[백준] Python,Java로 풀기📖 > 자료구조' 카테고리의 다른 글
백준 1966(프린터 큐) - Python(파이썬) - 큐,자료구조 (0) | 2022.07.03 |
---|---|
백준 5430(AC) -Python(파이썬) - 자료구조 (0) | 2022.06.08 |
백준 10828(스택) - Python(파이썬),Java(자바) -자료구조,스택 (0) | 2022.06.07 |
백준 1158(요세푸스 문제) - Python(파이썬),Java(자바) - 자료구조(큐) (0) | 2022.06.07 |
백준 11279(최대 힙) - Python(파이썬) - 자료구조 (0) | 2022.05.31 |