본문 바로가기
[ 다먹살 ]/- Coding

[백준] 1927 최소 힙

by 엉망으로살기 2021. 11. 12.
반응형

https://www.acmicpc.net/problem/1927

 

1927번: 최소 힙

첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0

www.acmicpc.net

 

자바에는 우선순위 큐 라이브러리(import java.util.PriorityQueue)가 있기 때문에 이것을 사용하면 간단히 해결할 수 있는 문제였다. 


문제 및 입출력


코드

import java.util.PriorityQueue;
import java.util.Scanner;

public class Main
{
     public static void main(String[] args)
     {
         Scanner sc = new Scanner(System.in);
         PriorityQueue<Integer> pq = new PriorityQueue<Integer>();
         StringBuilder sb = new StringBuilder();
         int n = sc.nextInt();

         for(int i=0; i<n; i++)
         {
             int input = sc.nextInt();

             // case 1 : 0을 입력받았을 때
             if(input==0)
             {
                  // case 1-1 : 우선순위 큐가 비어있으면 0을 출력
                  if(pq.isEmpty())
                  {
                       sb.append(0 + "\n");
                  }
                  // case 1-2 : 우선순위 큐가 비어있지 않으면 최소 값을 출력
                  else
                  {
                       sb.append(pq.poll() + "\n");
                  }
             }
            // case 2 : 0이 아닌 값을 입력받았을 때는 우선순위 큐에 삽입
             else
             {
                  pq.add(input);
             }
         }

         System.out.println(sb.toString());
         sc.close();
     }
}

 

반응형

'[ 다먹살 ] > - Coding' 카테고리의 다른 글

[백준] 15829 Hashing  (0) 2021.11.13
[백준] 10845 큐  (0) 2021.11.13
[프로그래머스] 레벨2 괄호 변환  (0) 2021.11.11
[프로그래머스] 레벨2 메뉴 리뉴얼  (0) 2021.11.10
[백준] 11047 동전0  (0) 2021.11.10

댓글