- 문제 : 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)
'백준 > Greedy' 카테고리의 다른 글
[그리디/백준] 1339번 : 단어 수학 (0) | 2022.06.29 |
---|---|
[그리디/백준] 4796번: 캠핑 (0) | 2022.06.29 |
[그리디/백준] 1946번: 신입 사원 (0) | 2022.06.27 |
[그리디/백준] 13305번: 주유소 (0) | 2022.06.27 |
[그리디/백준] 10610번: 30 (0) | 2022.06.26 |