문제
제한 사항 및 입출력
문제풀이
import java.util.*;
class Solution {
public int[] solution(String[] operations) {
int[] answer = new int[2];
PriorityQueue<Integer> pq1 = new PriorityQueue<>();
PriorityQueue<Integer> pq2 = new PriorityQueue<>(Collections.reverseOrder());
String[] tmp;
for(int i = 0 ; i < operations.length;i++){
tmp = operations[i].split(" ");
if(pq1.size()==0 && tmp[0].equals("D"))continue;
if(tmp[0].equals("I")){
pq1.add(Integer.parseInt(tmp[1]));
pq2.add(Integer.parseInt(tmp[1]));
}else if(tmp[0].equals("D")&&tmp[1].equals("1")){
int max = pq2.poll();
pq1.remove(max);
}else if(tmp[0].equals("D")&&tmp[1].equals("-1")){
int min = pq1.poll();
pq2.remove(min);
}
}
if(pq1.size()>0){
answer[0]=pq2.poll();
answer[1]=pq1.poll();
}
return answer;
}
}
※ 내 생각
우선 순위 큐를 2개 이용하여 문제풀이를 진행했습니다.
오름차순을 진행하는 큐
내림차순을 진행하는 큐
2개의 큐를 만들고 상황에 따라서 각각을 삭제했습니다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 로또의 최고 순위와 최저 순위(자바) / 구현 (0) | 2021.10.15 |
---|---|
[프로그래머스] 카펫 (자바) / 완전 탐색 (0) | 2021.10.04 |
[프로그래머스] 디스크 컨트롤러(자바) /Heap (0) | 2021.09.27 |
[프로그래머스] 더 맵게 (자바) / 힙 (0) | 2021.09.16 |
[프로그래머스] 다리를 지나는 트럭(자바) / 큐 (0) | 2021.09.12 |