알고리즘/힙

[Java] PriorityQueue를 활용한 힙(Heap) 구현

연향동큰손 2025. 1. 9. 16:55

자바에서는 PriorityQueue를 활용하여 최소힙을 구현 가능하다.

 

최소 힙이란?

최소 힙은 부모 노드가 항상 자식 노드보다 작거나 같은 값을 가지는 완전 이진 트리로, 최솟값이 루트에 위치한다.

최소 힙

 

import java.util.PriorityQueue;

public class HeapExample {
    public static void main(String[] args) {
        // Integer를 저장하는 최소 힙 생성
        PriorityQueue<Integer> minHeap = new PriorityQueue<>();

        // 요소 추가
        minHeap.offer(5);
        minHeap.offer(2);
        minHeap.offer(8);
        minHeap.offer(1);

        // 최소값 확인
        int minValue = minHeap.peek();
        System.out.println("Min value: " + minValue); // Min value: 1

        // 최소값 삭제
        int deletedValue = minHeap.poll();
        System.out.println("Deleted value: " + deletedValue); // Deleted value: 1

        // 최소값 확인
        minValue = minHeap.peek();
        System.out.println("Min value: " + minValue); // Min value: 2
    }
}

 

minHeap.offer() ==> 삽입(최소값이 최 상단에 위치 하도록 삽입된다.)

 

minHeap.peek() ==> 최소값 확인

 

minHeap.poll() ==> 최소값 삭제

'알고리즘 > ' 카테고리의 다른 글

프로그래머스 - 더 맵게(Java)  (0) 2025.01.09