[kotlin] 힙(Heap) 자료 구조의 특징과 사용 예시

힙(heap)은 완전 이진 트리(complete binary tree) 형태의 자료 구조로, 최댓값 또는 최솟값을 빠르게 찾기 위해 사용됩니다. 힙은 주로 우선순위 큐와 함께 사용되며, 데이터의 삽입, 삭제, 최댓값 또는 최솟값 검색에 뛰어난 성능을 보입니다.

힙의 특징

사용 예시

import java.util.*

fun main() {
    // 최소힙 생성
    val minHeap = PriorityQueue<Int>()

    // 데이터 삽입
    minHeap.add(5)
    minHeap.add(3)
    minHeap.add(8)
    minHeap.add(1)

    // 최솟값 삭제
    minHeap.poll()

    // 최솟값 확인
    val min = minHeap.peek()
    println("최솟값: $min")  // 출력: 최솟값: 3
}

위 예시에서는 PriorityQueue를 사용하여 최소힙을 구현하였습니다. add 메서드를 통해 데이터를 삽입하고, poll 메서드로 최솟값을 삭제한 후, peek 메서드를 사용하여 최솟값을 확인하였습니다.

힙은 이외에도 다양한 용도로 활용될 수 있으며, 알고리즘 및 데이터 구조 학습에 있어 중요한 개념 중 하나입니다.

더 자세한 정보는 GeeksforGeeks에서 참고할 수 있습니다.