- 문제 : https://www.acmicpc.net/problem/1715

 

 

-정답 풀이 : 

heapq.heapify(data)를 설정해주지 않아서 틀렸었다.

입력 데이터에서 가장 작은 값을 인덱스 0에 놓아야하는데, 이를 위해선 data 리스트도 heap으로 설정해줘야 한다 

 

input = sys.stdin.readline이 없을 때와 있을 때 실행 시간이 20배 차이난다. 설정해주자!

처음 풀었을 때보다는 heap을 잘 다루는 것 같다

import sys
import heapq 
input = sys.stdin.readline

n=int(input())
data=[]

for _ in range(n):
    data.append(int(input()))
answer=0

#여기를 설정하지 않으면 틀린다!
heapq.heapify(data)

for _ in range(n-1): 
    a=heapq.heappop(data)
    b=heapq.heappop(data)
    heapq.heappush(data, a + b)
    answer += (a + b)
    
print(answer)

+ Recent posts