-
14235 크리스마스 선물 (자바)백준/우선순위 큐 2022. 2. 3. 14:42
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Collections; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // 아이들과 거점지를 방문한 횟수 int N = Integer.parseInt(br.readLine()); PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder()); for(int i=0; i<N; i++) { StringTokenizer st = new StringTokenizer(br.readLine(), " "); int input = Integer.parseInt(st.nextToken()); // 1) input 값이 0일때, 즉 아이들을 만났을 때 if(input ==0 ) { // 1-1 ) 나눠줄 선물이 없음 if(pq.size() ==0) { System.out.println("-1"); continue; //1-2) 나눠줄 선물이 있음 }else { int output = pq.poll(); System.out.println(output); continue; } // 2) input 값이 0이 아님. 즉, 거점지에 와서 선물 충전 }else { for(int j=0; j<input; j++) { int gift = Integer.parseInt(st.nextToken()); pq.add(gift); } } } } }
우선순위 큐를 사용해서 완성했다.
PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
이렇게 코드를 사용함으로써, 우선순위 큐에 데이터가 내림차순으로 저장되게 해서, 아이들에게 선물을 나눠줄 때 가치가 가장 큰 선물부터 나눠줄 수 있도록 했다.
'백준 > 우선순위 큐' 카테고리의 다른 글
12018 Yonsei TOTO (0) 2021.10.21 15903 카드 합체 놀이 (0) 2021.10.20