- Python의 Heapq과 같은 Java의 자료구조
- size가 가변적
- 최소 힙으로 정렬한 뒤 데이터를 출력하는 구조 (원소 추가 시 자동으로 오름차순 재정렬)
함수 종류
- add() = 원소 추가
- poll() = 맨 앞 원소 반환 및 제거
- peek() = 맨 앞 원소 반환 (제거 X)
- clear() = 원소 모두 제거 (초기화)
- contains() = 특정 원소 포함 유무(true/false) 반환
- size() = 원소 개수 반환
예시
https://school.programmers.co.kr/learn/courses/30/lessons/42626
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.*;
class Solution {
public int solution(int[] scoville, int K) {
PriorityQueue<Integer> heap = new PriorityQueue<>();
for(int i = 0; i < scoville.length; i++){
heap.add(scoville[i]);
}
int answer = 0;
while(heap.peek() < K){
if(heap.size() == 1){
answer = -1;
break;
}
int a = heap.poll();
int b = heap.poll();
int newScoville = a + b * 2;
heap.add(newScoville);
answer++;
}
return answer;
}
}
'Java > 알고리즘과 자료구조' 카테고리의 다른 글
java.lang.Integer (0) | 2023.02.23 |
---|---|
Array vs ArrayList (0) | 2023.02.23 |
java.lang.String (0) | 2023.02.23 |
java.lang.Character (0) | 2023.02.23 |
java.util.Arrays (0) | 2023.02.23 |
댓글