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
맘대로 추가문제 내고 했는데 괜찮나?
참고로 persistent라서 메타프로그래밍이나 타입레벨하기 매우 적당하니 TMP빌런들의 활약을 기대해 보겠음
문제 뭘 수정했길래 내려왔누
미안 수정하려다 토요일 지나서 수정하긴 좀 그래서 그냥 지움