Notice
Recent Posts
문제 풀이 및 개발 공간
[백준] 7662번이중 우선순위 큐 (gold 4 본문
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
PriorityQueue<Integer> aque=new PriorityQueue<>();
PriorityQueue<Integer> rque=new PriorityQueue<>(Collections.reverseOrder());
HashMap<Integer,Integer> dict=new HashMap<>();
int t=Integer.valueOf(br.readLine());
for(int cs=0; cs<t; cs++){
aque.clear();
rque.clear();
dict.clear();
int n=Integer.valueOf(br.readLine());
for(int i=0; i<n; i++) {
st = new StringTokenizer(br.readLine());
char c = st.nextToken().charAt(0);
int mid = Integer.valueOf(st.nextToken());
if (c == 'I') {
aque.offer(mid);
rque.offer(mid);
if (dict.get(mid) == null) {
dict.put(mid, 1);
}
else {
dict.replace(mid, dict.get(mid) + 1);
}
}
else {
if (mid == 1) {
while(!rque.isEmpty()){
int temp=rque.poll();
if(dict.get(temp)==0){
continue;
}
dict.replace(temp, dict.get(temp)-1);
break;
}
}
else{
while(!aque.isEmpty()){
int temp=aque.poll();
if(dict.get(temp)==0){
continue;
}
dict.replace(temp, dict.get(temp)-1);
break;
}
}
}
}
int mn=Integer.MAX_VALUE;
int mx=Integer.MIN_VALUE;
boolean find=false;
while(!rque.isEmpty()){
int temp=rque.poll();
if(dict.get(temp)!=0){
mx=temp;
find=true;
break;
}
}
while(!aque.isEmpty()){
int temp=aque.poll();
if(dict.get(temp)!=0){
mn=temp;
break;
}
}
bw.write(find ? mx+" "+mn+"\n" : "EMPTY\n");
}
bw.flush();
}
}
'백준공부 > java' 카테고리의 다른 글
[백준] 17144번 미세먼지 안녕! (gold 4 (0) | 2024.03.07 |
---|---|
[백준] 11723번 집합 (silver 5 (0) | 2024.03.07 |
[백준] 2638번 치즈 (gold 3 (0) | 2024.03.06 |
[백준] 2636번 치즈 (gold 4 (2) | 2024.03.06 |
[백준] 1759번 암호 만들기 (gold 5 (0) | 2024.03.05 |