참고 : 다른 언어 들은 우선순위 큐를 구현해야되서 3렙이다.
링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42628
import java.util.*;
import java.util.PriorityQueue;
import java.util.stream.Collectors;
class Solution {
public int[] solution(String[] operations) {
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Collections.reverseOrder());
// 커맨드 순회
for (String operation : operations) {
String[] s = operation.split(" ");
String command = s[0];
Integer value = Integer.valueOf(s[1]);
// 추가
if(command.equals("I")){
minHeap.add(value);
maxHeap.add(value);
}
// 삭제
if(command.equals("D")){
// 빈큐 명령어 무시
if(maxHeap.isEmpty() || minHeap.isEmpty())
continue;
if(value.equals(1)){
Integer poll = maxHeap.poll();
minHeap.remove(poll);
}
if(value.equals(-1)){
Integer poll = minHeap.poll();
maxHeap.remove(poll);
}
}
}
//빈 큐 고려한 값 추출
int min = minHeap.isEmpty() ? 0 : minHeap.poll();
int max = maxHeap.isEmpty() ? 0 : maxHeap.poll();
//출력 세팅
int[] answer = {max, min};
return answer;
}
}
'교육 > 코테' 카테고리의 다른 글
[프로그래머스]JAVA H-Index -정렬 (0) | 2022.07.07 |
---|---|
[프로그래머스]JAVA 가장 큰 수 -정렬 (0) | 2022.07.07 |
[프로그래머스]JAVA 디스크 컨트롤러 -힙 (0) | 2022.07.07 |
[프로그래머스]JAVA 주식가격 -스택/큐 (1) | 2022.07.06 |
[프로그래머스]JAVA 다리를 지나는 트럭 -스택/큐 (0) | 2022.07.06 |