728x90
반응형
TreeMap 이라는 자료구조를 처음 알게 되었다. 역쉬 많이 풀어봐야 안다!
PriorityQueue 와 유사한 맵이다. firstKey, lastKey로 작고 큰걸 뺄 수 있다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.util.TreeMap;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
while (T-- > 0){
TreeMap<Integer,Integer> treeMap = new TreeMap<>();
int k = Integer.parseInt(br.readLine());
for (int i = 0; i < k; i++) {
StringTokenizer st = new StringTokenizer(br.readLine()," ");
char cmd = st.nextToken().charAt(0);
int n = Integer.parseInt(st.nextToken());
if(cmd=='I'){
treeMap.put(n,treeMap.getOrDefault(n,0)+1);
}else{
if(n==1){
if(treeMap.size()==0) continue;
int value = treeMap.get(treeMap.lastKey());
if(value==1) treeMap.remove(treeMap.lastKey());
else treeMap.put(treeMap.lastKey(),value-1);
}else{
if(treeMap.size()==0) continue;
int value = treeMap.get(treeMap.firstKey());
if(value==1) treeMap.remove(treeMap.firstKey());
else treeMap.put(treeMap.firstKey(),value-1);
}
}
}
if(treeMap.size()==0){
System.out.println("EMPTY");
}else{
System.out.println(treeMap.lastKey() + " " + treeMap.firstKey());
}
}
}
}
728x90
반응형
'알고리즘 > 해시' 카테고리의 다른 글
[백준] 17219번 비밀번호 찾기 #Java (0) | 2022.06.19 |
---|---|
[백준] 2480번 주사위 세개 #Java (0) | 2022.05.29 |
[프로그래머스] 신고 결과 받기 #Java (0) | 2022.05.20 |
[백준] 1764번 듣보잡 #Java (0) | 2022.05.17 |
[백준] 1620번 나는야 포켓몬 마스터 이다솜 #Java (0) | 2022.05.15 |