https://www.acmicpc.net/problem/14235
14235번: 크리스마스 선물
크리스마스에는 산타가 착한 아이들에게 선물을 나눠준다. 올해도 산타는 선물을 나눠주기 위해 많은 노력을 하고 있는데, 전세계를 돌아댕기며 착한 아이들에게 선물을 나눠줄 것이다. 하지만
www.acmicpc.net
저는 우선순위 큐를 통해 문제를 해결하였습니다.
0인 경우 우선순위 큐에서 하나 뽑고 그렇지 않다면 우선순위 큐에 선물을 저장하였습니다.
package BOJ.greedy;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
import java.util.function.Function;
public class BOJ_14235_2 {
private static final int NOT_FOUND = -1;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Function<String,Integer> stoi = Integer::parseInt;
StringTokenizer st = new StringTokenizer(br.readLine());
int n = stoi.apply(st.nextToken());
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
for(int i = 0 ; i < n ; i++){
st = new StringTokenizer(br.readLine());
int cnt = stoi.apply(st.nextToken());
if(cnt == 0){
if(pq.isEmpty()){
System.out.println(NOT_FOUND);
}else{
System.out.println(pq.poll());
}
}
for(int j = 0 ; j < cnt ; j++){
pq.offer(stoi.apply(st.nextToken()));
}
}
}
}
'알고리즘' 카테고리의 다른 글
백준 2579번 계단 오르기 (JAVA) (0) | 2023.07.07 |
---|---|
백준 1806번 부분합 (JAVA) (0) | 2023.07.06 |
백준 15903번 카드 합체 놀이 (JAVA) (0) | 2023.07.04 |
백준 1766번 문제집 (JAVA) (0) | 2023.07.03 |
백준 1202번 보석 도둑 (JAVA) (0) | 2023.07.02 |