BOJ 1927 최소 힙

less than 1 minute read

  1. 변수

    int N // 연산의 개수
    int X // 0이면 출력, 아니면 입력
    PriorityQueue<Integer> pq //가장 작은 값을 갱신해주기 위한 큐
    
  2. 로직

    • X가 0일 때
      • pq가 비어있다면 0
      • pq에 데이터가 있다면 출력
    • A가 0이 아닐 때
      • pq에 데이터 추가
  3. 코드

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

public class BOJ_1927_최소힙_201227 {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		
		int N = Integer.parseInt(br.readLine());

		PriorityQueue<Integer> pq = new PriorityQueue<Integer>();
		for (int i = 0; i < N; i++) {
			int X = Integer.parseInt(br.readLine());
			if(X == 0) {
				if(!pq.isEmpty())
					System.out.println(pq.poll());
				else
					System.out.println(0);
			}else {
				pq.add(X);
			}
		}
	}

}

Tags:

Categories:

Updated:

Leave a comment