시간&메모리 제한
문제풀이
입력&출력
문제풀이
package com.Back;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
import java.util.StringTokenizer;
public class Back_14235 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
StringTokenizer st;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
if(a==0) {
if(pq.size()==0) {
sb.append("-1\n");
}else {
sb.append(pq.poll()+"\n");
}
}else {
for (int j = 0; j < a; j++) {
pq.add(Integer.parseInt(st.nextToken()));
}
}
}
System.out.println(sb);
}
}
※ 내 생각
이 문제는 우선순위 큐를 이용하여 문제를 해결할 수 있습니다.
우선순위 큐의 정렬 조건을 내림차순이 되게 만들어 줍니다.
for문에서 a가 0이면 pq의 사이즈를 확인하고 비어 있으면 -1을 비어 있지 않으면 하나 꺼내 출력을 하면 됩니다.
a가 0이 아니면 a의 갯수 만큼 pq에 추가를 해줍니다.
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_1913 달팽이(자바) / 구현 (0) | 2021.11.19 |
---|---|
백준_3273 두 수의 합(자바) / 투 포인트 (0) | 2021.11.18 |
백준_8979 올림픽(자바) / 구현 (0) | 2021.11.16 |
백준_9996 한국이 그리울 땐 서버에 접속하지(자바) / 문자열 (0) | 2021.11.15 |
백준_1092 배(자바) / 그리디 (0) | 2021.11.14 |