728x90
13975번: 파일 합치기 3
프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T개의 테스트 데이터로 이루어져 있는데, T는 입력의 맨 첫 줄에 주어진다.각 테스트 데이터는 두 개의 행으로 주어지는데,
www.acmicpc.net
🤔 문제분석
우선순위큐를 활용하여 가장 작은 파일부터 합쳐나아가는 문제입니다. 가장 작은 파일끼리 합쳐야 합의 가중치가 낮기때문입니다.
💻 코드
import sys
import heapq
input = sys.stdin.readline
T = int(input())
for _ in range(T):
K = int(input())
queue = []
for file in list(map(int, input().split())):
heapq.heappush(queue, file)
cost = 0
while len(queue) != 1:
file1 = heapq.heappop(queue)
file2 = heapq.heappop(queue)
new_file = file1 + file2
cost += new_file
heapq.heappush(queue, new_file)
print(cost)
🎯 피드백 및 개선사항
문제를 읽자마자 바로 파일을 작은순서부터 더해가면되겠다고 생각이 되어서 우선순위 큐를 활용하였습니다.
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 4803번 : 트리 (1) | 2024.02.26 |
---|---|
[백준] 16120번 : PPAP (0) | 2024.02.26 |
[백준] 16724번 : 피리부는사나이 (1) | 2024.02.24 |
[백준] 14725번 : 개미굴 (1) | 2024.02.24 |
[백준] 1351번 : 무한수열 (0) | 2024.02.24 |