[Python] 백준 13417 카드 문자열

https://www.acmicpc.net/problem/13417

 

13417번: 카드 문자열

입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각각의 테스트 케이스의 첫째 줄에 처

www.acmicpc.net

 

문제

 

해설

  • 태욱이가 만들 수 있는 카드 문자열 중 사전 순으로 가장 빠른 문자열을 출력해야함
  • 처음 뽑은 카드를 기준으로 문자열을 비교하여 사전순이 빠른 문자는 왼쪽에, 그렇지 않으면 오른쪽에 붙임
  • 즉, 왼쪽 오른쪽에 자유롭게 푸쉬를 할 수 있는 자료구조는 ? → Deque

 

from sys import stdin
from collections import deque

t = int(stdin.readline())
for _ in range(t):
    result = []
    n = int(stdin.readline())
    dq = deque(stdin.readline().split())
    result.append(dq.popleft())
    while dq:
        tmp = dq.popleft()
        if tmp > result[0]:
            result.append(tmp)
        else:
            result.insert(0,tmp)
    print(''.join(result))

 

댓글