728x90
<문제 링크>
https://www.acmicpc.net/problem/1715
<문제 풀이>
1. 항상 가장 작은 크기의 두 카드 묶음을 합치는 알고리즘 계산
2. heapq 사용
3. 결과 값은 두 개 더한 값을 다 더한 값
<코드>
#이취코 답
import heapq
n = int(input())
heap = []
for i in range(n):
data = int(input())
heapq.heappush(heap, data)
result = 0
while len(heap) != 1:
one = heapq.heappop(heap)
two = heapq.heappop(heap)
sum_value = one+two
result += sum_value
heapq.heappush(heap,sum_value)
print(result)
<고쳐야 할 점>
- heapq 사용하는거 기억하기
- heappop은 최소값 빼는거 기억하기
- 이중 덧셈 계산법 기억하기
- 복습 알고리즘
'두두의 알고리즘 > 문제' 카테고리의 다른 글
[동적계획법] 난이도2, 이취코 226p '효율적인 화폐 구성' (Python) (0) | 2022.03.30 |
---|---|
[이분탐색] 백준 2110번 '공유기 설치' (Python) (0) | 2022.03.29 |
[BFS/DFS] 백준 16234번 '인구 이동' (Python) (0) | 2022.03.29 |
[BFS/DFS] 백준 14888번 '연산자 끼워넣기' (Python) (0) | 2022.03.28 |
[BFS] 백준 18405번 '경쟁적 전염' (Python) (0) | 2022.03.28 |