duddnd919   2년 전


첨부된 코드는 전체 코드의 일부분입니다. 

두 힙의 최대와 최소를 각각 비교하여 change해주는 작업인데 

이렇게 list index를 통해서 바꿔주면 틀렸습니다가 도출됩니다.

제가 이렇게 한 이유는 

d=[]

heapq.heappush(d,2)

heapq.heappush(d,-3)

heapq.heappush(d,-10)

를 하면 d=[-10,-3,2] 이 도출되는데요 , 이렇게 heappush를 통해 원소를 넣으면 d[0]이 list에서 최솟값을 가짐을 확인할 수 있습니다. 

저는 이것을 이용하여 heapq.heappop() 을 사용하지 않고 문제를 해결하려고 했지만, 실패를 맞이했습니다. 이 부분만 바꿔주면 맞았습니다가 나오더라구요.

왜 이렇게 하는 방식이 틀린 건지 알려주시면 감사하겠습니다. 

댓글을 작성하려면 로그인해야 합니다.