728x90
https://www.acmicpc.net/problem/1294
코드
import sys
from heapq import heappush, heappop
input = sys.stdin.readline
def solution():
N = int(input())
heap = []
M = 0
for i in range(N):
word = input().rstrip()
heappush(heap, word+'_')
M += len(word)
res = ''
for _ in range(M):
word = heappop(heap)
res += word[0]
heappush(heap, word[1:])
print(res)
solution()
설명
가장 작은 문자열을 꺼내면 되기에 heap을 사용한다
_를 더해주는 이유는 사전식 순서에서 어떤 알파벳보다도 뒤에 오기 때문에 더해준다
계속해서 heap을 사용해 가장 작은 문자열의 첫 번째 알파벳을 가져와 res에 더해준다
# pen2402 님의 코드를 참조
'자료구조&알고리즘 > 백준' 카테고리의 다른 글
백준 | [파이썬 Python] 2206 벽 부수고 이동하기 (0) | 2024.08.30 |
---|---|
백준 | [파이썬 Python] 7579 앱 (0) | 2024.06.19 |
백준 | [파이썬 Python] 11049 행렬 곱셈 순서 (0) | 2024.06.10 |
백준 | [파이썬 Python] 11066 파일 합치기 (0) | 2024.06.10 |
백준 | [파이썬 Python] 11286 절댓값 힙 (0) | 2024.06.02 |