결론부터
- 생각해보면 당연하지만 코딩테스트 문제를 풀다가 실수한 내용이라 기록해본다.
- 이미 PriorityQueue에 추가된 값을 수정해도, 자동으로 heapify가 진행되지 않는다.
어떻게 해결했는가
PriorityQueue에 있는 값을 계속해서 수정해야 되는 경우가 있어서 soft delete 방법을 응용해서 해결했다.
- 값을 수정해야 되는 객체를 soft delete 시킨다.
- 해당 객체에서 값을 수정한 결과를 새로 인스턴스로 만들어 PriorityQueue에 추가한다.
- PriorityQueue에서 pop했을 때, deleted된 객체는 무시해버린다.