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 |
댓글