1) 4가 큐에 들어옴 -> 현재 큐에 있는 데이터 중 우선 순위가 가장 높음
2) 6이 들어옴 -> 6은 4보다 우선순위가 높으므로, 6,4 순서로 정렬함
3) 3이 큐에 들어옴 -> 앞의 두 수보다 우선순위가 낮으므로 큐의 변화가 없음
4) 1이 큐에 들어옴 -> 앞의 데이터들보다 우선순위가 낮으므로 큐의 변화 없음
5) 2가 큐에 들어옴 -> 2는 1보다 우선순위가 크므로 자리를 바꿔줌
-> 이렇게 우선순위를 고려해 큐에 삽입하면 [6,4,3,2,1]의 리스트를 얻게 되고, 이를 순서대로 처리하면 우선순위에 맞게 데이터를 처리하는 것.
-> 그럼 데이터를 삽입할 때마다 큐에 있는 데이터를 하나씩 비교해서 우선순위에 맞는 자리를 찾아 넣으면 되겠다!
=> 구현은 쉽지만 삽입 과정에서 위치하게 될 데이터들을 모두 한 칸씩 뒤로 밀어야 한다는 단점이 있음. 또한 최악의 경우 삽입해야 하는 위치를 찾기 위해 모든 인덱스를 탐색해야 할 수 있으므로 데이터가 N개라면 O(N)의 시간 복잡도를 가짐 -> 따라서 힙 사용



1은 값이 5인 부모 노드보다 값이 작으므로 최소 힙의 성질을 만족하기 위해 부모 노드와 자리를 바꿈

마찬가지로 1은 값이 2인 부모 노드보다 값이 작으므로 최소 힙의 성질을 만족하기 위해 부모 노드와 자리를 바꿈

1값을 가진 노드가 삭제됨

루트 노드가 비게 되며, 이를 마지막 노드가 채움

자식 노드가 값이 더 작으므로 값을 교환해주기 위해 더 작은 값을 구함 -> 2가 4보다 작으므로 2의 값을 가진 노드와 루트 노드를 바꿈

최소힙 만족 삭제 종료

-> 삽입 삭제는 트리의 높이까지 비교가 이루어지기 때문에 데이터가 N개라면 O(logN)의 시간 복잡도를 가짐