힙(Heap) 이란? 힙(heap) 은 완전 이진 트리의 일종으로 여러 값들 중 최댓값 혹은 최솟값을 빠르게 찾아내기 위한 자료구조입니다. 이진 탐색 트리와는 다르게 힙은 중복된 값을 허용합니다. 완전 이진 트리는 지난 게시물에서 배웠었는데요 그 부분만 다시 보면 완전 이진 트리는 마지막 레벨을 제외하고 모든 레벨이 완전히 채워져있고, 마지막 레벨은 왼쪽에서 오른쪽 순으로 데이터가 차 있는 이진 트리를 말합니다. Heap 은 중복 키 값을 허용하고, 부모 노드와 자식 노드 간의 관계가 정해져 있는 자료구조입니다. Max heap 와 Min heap 은 위처럼 부모 노드가 자식 노드보다 키값이 더 큰지 작은지로 결정됩니다. Max heap 은 가장 큰 값을 빠르게 찾을 수 있고, Min heap 은 가장 ..