백준 문제풀이
[백준] 14235번
Dodledd
2024. 7. 13. 22:41
문제를 먼저보자!
그리 어렵지 않은 문제이다.
힌트 : 우선순위 큐(PriorityQueue) 사용
코드
package src.week3;
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 S14235 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st ;
PriorityQueue<Integer> pQ = new PriorityQueue<>(Collections.reverseOrder()); //내림차순
int n = Integer.parseInt(bf.readLine()); //돌아갈 횟수
for(int i = 0 ; i < n ; i++) {
st = new StringTokenizer(bf.readLine()); //끊어서 입력받고
int a = Integer.parseInt(st.nextToken()); //처음 끊어서 입력받은 a가 충전 횟수
if(a==0 && pQ.isEmpty()) { //0이며 비어있다면 1출력
System.out.println(-1);
}else if(a==0 && !pQ.isEmpty()) { //0이고 비어있지 않으면 추출
System.out.println(pQ.poll());
}else {
while(st.hasMoreElements()) { //0이 아닐시에 처음 입력된 a를 제외하고 후에 입력받은 값들을 모두 넣어준다.
pQ.add(Integer.parseInt(st.nextToken()));
}
}
}
}
}