알고리즘 문제풀이/백준

#11279 : 최대 힙

모항 2023. 5. 17. 18:52

풀이방법

사용된 것:

우선순위 큐

 

 

 

 

 

2023.05.17

자바의 PriorityQueue<T> 클래스를 사용하면 되는 간단한 문제이다.

 

코드

Java(2023.05.17)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.PriorityQueue;

public class Main {

	public static void main(String[] args) throws IOException{
		// TODO Auto-generated method stub
		// 입력값을 읽어오기 위한 BufferedReader
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		// 우선순위 큐(큰 수가 우선순위가 높음)
		PriorityQueue<Integer> queue = new PriorityQueue<Integer>(Collections.reverseOrder());
		
		// N의 값 읽어오기
		int n = Integer.parseInt(br.readLine());
		
		// 출력값을 쌓을 StringBuilder
		StringBuilder sb = new StringBuilder();
		// N번 반복하는 반복문으로 작업 수행
		for(int i=0; i<n; i++) {
			// 숫자 읽어오기
			int num = Integer.parseInt(br.readLine());
			// 숫자가 0인 경우
			if(num==0) {
				if(queue.isEmpty()) sb.append(0);
				else sb.append(queue.poll());
				sb.append(System.lineSeparator());
			}
			// 숫자가 0 이외의 숫자인 경우
			else queue.add(num);
		}
		
		// 정답 출력
		System.out.print(sb);

	}

}

'알고리즘 문제풀이 > 백준' 카테고리의 다른 글

#18110 : solved.ac  (0) 2023.09.20
#5358 : Football Team  (0) 2023.09.05
#14244 : 트리 만들기  (0) 2023.05.15
#24416 : 알고리즘 수업 - 피보나치 수 1  (0) 2023.04.05
#2563 : 색종이  (0) 2023.03.19