https://www.acmicpc.net/problem/13417
import sys
def solve(cards):
dict_alphabet = {chr(i):i for i in range(65,65+27)}
reverse_alphabet = {i:chr(i) for i in range(65,65+27)}
cards_int = [dict_alphabet[c] for c in cards]
arange = []
for card in cards_int:
if arange==[]: arange.append(card)
elif card <= arange[0]: arange.insert(0,card)
else: arange.insert(len(arange),card)
arange_chr = [reverse_alphabet[c] for c in arange]
return ''.join(arange_chr)
if __name__=='__main__':
T = int(input())
answers = []
for _ in range(T):
L = int(input())
cards = list(map(str, sys.stdin.readline().split()))
ans = solve(cards)
answers.append(ans)
for ans in answers:
print(ans)
'공부하는 것들 > 알고리즘' 카테고리의 다른 글
백준 12845번: 모두의 마블 (0) | 2021.09.13 |
---|---|
백준 3061번: 사다리 (0) | 2021.09.13 |
백준 2872번 : 우리집엔 도서관이 있어(그리디) *** (0) | 2021.09.12 |
백준 2012번: 등수 매기기 **(그리디) (0) | 2021.09.12 |
백준 1448번 : 삼각형 만들기 (그리디)** (0) | 2021.09.12 |