-
[프로그래머스] 이중우선순위큐ALGORITHM/PROGRAMMERS 2021. 8. 11. 13:53
https://programmers.co.kr/learn/courses/30/lessons/42628
2021-08-11
12345678910111213141516171819202122import java.util.*;class Solution {public int[] solution(String[] operations) {PriorityQueue<Integer> pq = new PriorityQueue<>();for(int i = 0; i < operations.length; i++) {String key = operations[i].split(" ")[0];int value = Integer.parseInt(operations[i].split(" ")[1]);if(key.equals("I")) {pq.add(value);} else {if(!pq.isEmpty()) {if(value == 1)pq.remove(pq.stream().mapToInt(x -> x).max().getAsInt());else pq.poll();}}}if(pq.size() == 0) return new int[]{0, 0};return new int[]{pq.stream().mapToInt(x -> x).max().getAsInt(), pq.peek()};}}cs #문제풀이
priorityQueue 하나로 풀었다.
pq.stream().mapToInt(x -> x).max().getAsInt()로 최댓값 찾고, peek()으로 최솟값 찾았다.
다른 사람들 푼 방식을 보니깐 max 버젼 min 버젼 두 개로 만들어서 푼 사람들도 있었다.
'ALGORITHM > PROGRAMMERS' 카테고리의 다른 글
[프로그래머스] 위클리 챌린지 4주차 (0) 2021.08.23 [프로그래머스] 섬 연결하기 (0) 2021.08.14 [프로그래머스] 등굣길 (0) 2021.08.11 [프로그래머스] 단어 변환 (0) 2021.08.11 [프로그래머스] 위클리 챌린지 2주차 (0) 2021.08.09