[Algorithm] 백준 1715 - 카드 정렬하기in Python(파이썬)

하이초·2022년 7월 15일
0

Algorithm

목록 보기
21/94
post-thumbnail
post-custom-banner

💡 백준 1927:

최소 힙 기본 구조 활용

🌱 코드 in Python

알고리즘: Min Heap

import sys, heapq

n = int(sys.stdin.readline())
card = []
for i in range(n):
	heapq.heappush(card, int(sys.stdin.readline())) # min-heap 구조로 원소 삽입하여 가장 작은 원소부터 더해나갈 수 있도록 함
ret = 0
while len(card) != 1: # card 더미가 한 개일 때는 비교 횟수가 0이며, 앞부터 2개씩 차례로 더해 나가다가 pop할 원소가 1개 뿐일 때 정지
	tmp1 = heapq.heappop(card) 
	tmp2 = heapq.heappop(card)
	tmp = tmp1 + tmp2
	heapq.heappush(card, tmp) # 앞선 2개를 더한 것에 다음 원소를 더함
	ret += tmp
print(ret)

별로 어려울 게 없는 문제였는데, 문제를 잘못읽어가지고
답이 나왔는데 아 왜 답이 안나와.. 이러면서 한참 잡고 있었다
자꾸 안나와서 돌고 돌아서 막 이상한 코드 쓰다가 아무래도 이건 넘 아닌 것 같은데,, 하면서 다시 거의 원점으로 돌아왔다,,,

이 문제는 문제에서 요구하는 최소 비교 횟수가 카드 더미의 수가 작은 것부터 차례대로 더해나가면 되는 것이기 때문에
최소 힙 구조를 활용하면 쉽게 풀 수 있는 문제였다


🧠 기억하자

  1. 컨디션이 안 좋을땐 그냥 뇌빼고 풀 수 있는 문제를 풀자..
  1. 그전에 컨디션 관리를 잘하자.. 에휴.. 한심쓰..

백준 1715 바로가기

profile
개발국대가 되는 그 날까지. 지금은 개발 응애.
post-custom-banner

0개의 댓글