[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))

     

    댓글