min heap을 구현하세요. 단, persistent해야 합니다. 따라서 이진힙등은 안됩니다 ㅇㅅㅇ

persistent하다는 말은 데이터 구조를 업데이트한 이후에도 이전의 값들에 접근할 수 있어야 한다는 뜻입니당


권장하는 방법은 Height biased leftist tree 입니다.

skew heap, binomial heap, splay heap 등 다른것도 있지만 난이도 확인 안했으니 자신있으면 해보시길


https://en.wikipedia.org/wiki/Persistent_data_structure

* Persistent data structure

https://en.wikipedia.org/wiki/Heap_(data_structure)

** Heap

https://en.wikipedia.org/wiki/Leftist_tree

*** Leftist tree


컴파일 타임으로 구현할 경우 가산점 20%(의미없음)가 붙습니다~



~ 안풀어도 상관없는 추가문제 ~

구현한 min heap을 priority queue로 사용해서 huffman coding을 구현하세요

표준입력으로 문장(개행문자로 구분)을 읽어서 huffman coding table과 엔코딩된 비트열(0, 1로 된 문자열)을 출력하면 됩니다.

그냥 힙 잘 구현했는지 확인하는 차원에서 하는거니 대충 만들어도 되요


https://en.wikipedia.org/wiki/Huffman_coding

**** Huffman coding