해당 문제는 왼쪽부터 순서대로 리스트의 값을 꺼내 만들어진 문자의 왼쪽 혹은 오른쪽에 붙이는 문제이다. 즉 하나씩 리스트에서 꺼내 이어붙이는 방식이다.
이때 키워드는 사전순으로 가장 빠른 단어를 만드는 것인데, 이를 위해선 만들고 있는 단어의 시작값보다 알파벳 순서가 빠르거나 같다면 단어의 맨 앞에 붙이고, 그게 아니라면 맨 뒤에 붙인다.
즉 덱을 이용해 문제를 푼다고 생각하면 된다.
testcase = int(input())
for _ in range(testcase):
N = int(input())
lst = list(input().split())
ans_lst =[lst.pop(0)]
for i in lst:
if ans_lst[0] >= i:
ans_lst.insert(0,i)
else:
ans_lst.append(i)
for i in ans_lst:
print(i,end='')
print()
혹은
testcase = int(input())
for _ in range(testcase):
N = int(input())
lst = list(input().split())
ans_lst =[lst.pop(0)]
for i in lst:
if ord(ans_lst[0]) >= ord(i):
ans_lst.insert(0,i)
else:
ans_lst.append(i)
for i in ans_lst:
print(i,end='')
print()
두번째의 경우 ord 값을 이용해 문제를 풀었다.