https://programmers.co.kr/learn/courses/30/lessons/42628
풀이 : 최소값과 최대값을 동시에 찾아낼 수 있는 Collection의 TreeMap을 이용함.
import java.util.*;
class Solution {
public int[] solution(String[] operations) {
// 큐
TreeMap<Integer, Integer> tm = new TreeMap<>();
for(int i = 0; i<operations.length; i++) {
String[] str = operations[i].split(" ");
Integer num = Integer.valueOf(str[1]);
// 큐에 주어진 숫자를 삽입
if(str[0].equals("I")) {
tm.put(num, i);
}
if(str[0].equals("D")) {
if(num < 0) {
tm.pollFirstEntry(); //최소값 삭제
}else {
tm.pollLastEntry(); //최대값 삭제
}
}
}
int min = 0;
int max = 0;
if(!tm.isEmpty()) {
min = tm.firstKey();
max = tm.lastKey();
}
int[] answer = { max, min};
return answer;
}
}
'알고리즘 > 코딩테스트' 카테고리의 다른 글
프로그래머스 단속카메라 (0) | 2021.10.01 |
---|---|
프로그래머스 섬 연결하기 (0) | 2021.09.28 |
프로그래머스 디스크 컨트롤러 (0) | 2021.09.26 |
프로그래머스 베스트앨범 (0) | 2021.09.25 |
BACKJOON/백준 1927 최소힙 (0) | 2021.09.23 |