카드정렬하기
SW/알고리즘 문제풀이 2021. 5. 19. 15:03

2021.05.17 카드정렬하기 Solution 계속해서 두개씩 합치는 작업을 해야하고, 합쳐진 묶음은 하나의 묶음이 됩니다. 합치는 작업의 횟수는 결국 N-1번이고, N-1동안 최소로 합치는 작업을 하기 위해서는 계속해서 제일 작은 두 묶음을 합쳐야합니다. 이를 위해서 Heap 자료구조를 사용해서 가장 작은 값 두개를 pop 해서 합한 값을 push 하도록 구현하였습니다. import heapq N = int(input()) myHeap = [] result = 0 for _ in range(N): heapq.heappush(myHeap, int(input())) while len(myHeap) > 1: num1 = heapq.heappop(myHeap) num2 = heapq.heappop(myHea..