본문 바로가기
코딩 테스트/정렬

카드 정렬하기

by hazel_ 2021. 2. 15.

p.363

 

import sys
import heapq
input=sys.stdin.readline

N=int(input())
heap=[]
for i in range(N):
  data=int(input())
  heapq.heappush(heap,data)

result = 0

# 힙에 원소가 1개 남을 때까지
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는 넣기만 해도 정렬된다는 것을 이용

* deque나 stack으로 한 후 sort하는 것은 시간 초과가 남

'코딩 테스트 > 정렬' 카테고리의 다른 글

실패율  (0) 2021.02.15
안테나  (0) 2021.02.15
국영수  (0) 2021.02.12
두 배열의 원소 교체  (0) 2021.02.11
성적이 낮은 순서로 학생 출력하기  (0) 2021.02.11

댓글