요르딩딩
이중우선순위 큐 (level 3) 본문
728x90
반응형
이번문제는 우선순위 큐로 풀었어야 했을거 같은데, 시간관계상 리스트를 매번 정렬하는 방식으로 풀어보았다.
리스트를 매번 정렬하는게 비효율 적이라 생각되어, 나중에 우선 순위 큐로 다시 한번 풀어봐야겠다.
import java.util.*;
class Solution {
public int[] solution(String[] operations) {
int[] answer = new int[2];
ArrayList<Integer> list = new ArrayList<Integer>();
for (String a : operations) {
String[] tmp = a.split(" ");
String cmd = tmp[0];
int value = Integer.parseInt(String.valueOf(tmp[1]));
if (cmd.equals("I")) {
list.add(value);
} else if (cmd.equals("D") && value == 1 && !list.isEmpty()) { // 가장 큰 값 삭제
list.remove(0);
} else if (cmd.equals("D") && value == -1 && !list.isEmpty()) { // 가장 작은 값 삭제
list.remove(list.size() - 1);
}
Collections.sort(list, Collections.reverseOrder()); // 내림차순으로 정렬
}
if (list.isEmpty()) { // 리스트가 비었다면
answer[0] = 0;
answer[1] = 0;
} else {
answer[0] = list.get(0); // 가장 큰 값
answer[1] = list.get(list.size() - 1); // 가장 작은 값
}
return answer;
}
}
728x90
반응형
'[코딩테스트] > 문제풀이' 카테고리의 다른 글
단어 변환 : BFS (Level3) (1) | 2022.09.23 |
---|---|
네트워크 (level 3) (1) | 2022.09.23 |
정수삼각형 (Level 3) (0) | 2022.09.15 |
최고의 집합 (Level 3) (0) | 2022.09.13 |
프로그래머스 : k진수에서 소수 개수 구하기 (진수변환, 소수) (0) | 2022.06.16 |
Comments