제가 알기로 PriorityQueue와 heapq 모두 동일한 기능을 수행하는 것으로 알고 있었는데 PriorityQueue로 작성한 코드는 런타임에러가 발생하는 반면 heapq로 작성한 코드는 정답처리가 되었네요.(문제 번호는 5719번입니다) 구글에서 검색해보니까 둘의 차이점은 PriorityQueue가 heappushpop()이나 heapreplace()같이 사용빈도가 낮은 heapq의 메소드들을 가지고있지 않다는 거랑 PriorityQueue는 thread-safe인 반면 heapq는 그렇지 않다는 것인데요. 여전히 왜 하나만 오류가 발생했는지 모르겠네요. thread-safe여부가 시간과 연관이 있다는 것 같긴한데 그러면 런타임에러가 아니라 시간초과가 걸리지않나요..? 저 말고 대부분의 코드 작성자분들은 PriorityQueue보다 heapq를 더 선호하시던데 혹시 둘의 차이점을 잘 아시는 분 있으시면 도움 부탁드립니다ㅜㅜ
dongdhy 3년 전
제가 알기로 PriorityQueue와 heapq 모두 동일한 기능을 수행하는 것으로 알고 있었는데 PriorityQueue로 작성한 코드는 런타임에러가 발생하는 반면 heapq로 작성한 코드는 정답처리가 되었네요.(문제 번호는 5719번입니다) 구글에서 검색해보니까 둘의 차이점은 PriorityQueue가 heappushpop()이나 heapreplace()같이 사용빈도가 낮은 heapq의 메소드들을 가지고있지 않다는 거랑 PriorityQueue는 thread-safe인 반면 heapq는 그렇지 않다는 것인데요. 여전히 왜 하나만 오류가 발생했는지 모르겠네요. thread-safe여부가 시간과 연관이 있다는 것 같긴한데 그러면 런타임에러가 아니라 시간초과가 걸리지않나요..? 저 말고 대부분의 코드 작성자분들은 PriorityQueue보다 heapq를 더 선호하시던데 혹시 둘의 차이점을 잘 아시는 분 있으시면 도움 부탁드립니다ㅜㅜ