[알고리즘 문제풀이] 카드 정렬하기

황인권·2023년 3월 30일
0

알고리즘 문제풀이

목록 보기
29/81

문제 제목 : 카드 정렬하기

문제 난이도 : 하

문제 유형 : 힙, 자료구조, 그리디

https://www.acmicpc.net/problem/1715
시간 제한 : 2초
메모리 제한 : 128MB

문제풀이 아이디어

  1. 크기가 가장 작은 숫자 카드 묶음을 먼저!! 합쳐야
    -> 비교 횟수가 가장 적게 나온다

< 소스코드 >

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)
profile
inkwon Hwang

0개의 댓글