티스토리 뷰

 integer로 구성된 sticks라는 input array의 모든 요소를 이어 붙이는 문제다. 이 때 더할 때 마다 발생하는 합이 최소가 되도록 하는 문제다. sorting을 통해 풀이를 해야하나 잠시 생각했지만 Min heap을 사용하면 쉽게 구현이 가능하다.

 

class Solution:
    def connectSticks(self, sticks: List[int]) -> int:
        mh = sticks
        ret = 0

        heapify(mh)

        while len(mh) > 1:
            m1 = heappop(mh)
            m2 = heappop(mh)
            sum_ = m1 + m2
            ret += sum_
            heappush(mh, sum_)

        return ret
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함
반응형