• Home

My Codegate

  • Home

백준 11279 최대 힙 자바 문제풀이

2023/12/21 Posted by Codegate Java No Comments
백준 11279 최대 힙 자바 문제풀이

문제 링크

입력으로 0을 제외한 수를 받을 경우에는 작은 순서대로 들어가야 하고, 0을 입력했을 경우에는 작은 수 순서대로 출력해주면 되는데, 배열의 크기가 0일 경우에는 0을 출력해줘야 한다

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 {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int count = Integer.parseInt(br.readLine());

    PriorityQueue<Integer> queue = new PriorityQueue<>(Collections.reverseOrder());
    for (int i = 0; i < count; i++) {
      int cmd = Integer.parseInt(br.readLine());
      if (cmd == 0) {
        if (queue.size() == 0) {
          System.out.println(0);
        } else {
          System.out.println(queue.poll());
        }
      } else {
        queue.add(cmd);
      }
    }
  }
}

문제는 배열을 말하고 있지만, 힙을 사용한 자료구조는 우선순위큐에 구현이 되어 있기 때문에 우선순위큐를 선언하되, 출력 시 큰 수부터 출력해야 하므로, Collections.reverseOrder()를 사용해줘야 한다.

이후 우선순위큐에 값을 넣으면 알아서 큰 수가 앞으로 오게 삽입되고, 0을 받아 값을 출력하는 경우에는 queue의 크기가 0이어서 0을 출력하는 부분만 조심해주면 된다

No Comments
0

Leave a Reply Cancel Reply

Introduction

My Codegate

Latest Posts

  • Google Search Console API 연동방법
  • 인텔리제이 Gradle Dependency 최신 버전 보는 방법
  • Wallet-Tracker 개발일지
  • Moralis API 자바로 호출방법
  • IntelliJ Commit 후 Push 따로 하는 방법

Categories

  • My Project (4)
  • Java (42)
  • Algorithm (161)
    • Java (152)
    • Algorithm Knowledge (3)
    • Algorithm site usage (6)
  • Vue.js (1)
  • Spring (4)
  • Docker (2)
  • IntelliJ (20)
  • Uncategorized (7)

Recent Comments

  • Codegate on Hello world!
  • A WordPress Commenter on Hello world!

© 2025 — mycodegate.com

Prev Next