[JAVA]백준 11279 최대 힙

최대 1 분 소요

JAVA로 풀이했습니다.
출처 : 백준 알고리즘 https://www.acmicpc.net

문제 개요

11279번 문제 👉 https://www.acmicpc.net/problem/11279
최대 힙 활용하는 프로그램 만들기
난이도 👉 실버 2

풀이과정

단순히 자료구조 중 최대 힙을 사용하는 문제입니다. 최대 힙에 대한 개념은 알지만, 사용법을 잘 몰라서 이번 기회에 공부했습니다.

나만의 방법

우선순위큐는 힙으로 구조되어 있으므로 우선순위큐를 활용하여 문제를 해결하였습니다. 또한, 기본적인 우선순위큐를 사용하면 최소 힙을 사용하기 때문에 최대 힙을 사용하도록 변경해주었습니다.

소스코드

public class baek_11279 {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		PriorityQueue<Integer> heap = new PriorityQueue<>((o1, o2) -> o2 - o1);
		int N = Integer.parseInt(br.readLine());
		for (int i = 0; i < N; i++) {
			int now = Integer.parseInt(br.readLine());
			if (now == 0 && heap.isEmpty()) {
				System.out.println(0);
			} else if (now == 0) {
				System.out.println(heap.remove());
			} else {
				heap.add(now);
			}
		}
	}
}

태그: ,

카테고리:

업데이트:

댓글남기기