BOJ/Python

백준 13417번 카드문자열 파이썬

띵지니어 2022. 3. 9. 19:06

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

 

13417번: 카드 문자열

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

www.acmicpc.net

 

내 답안

from collections import deque

for _ in range(int(input())):
    N = int(input())
    card = input().split()
    q = deque()
    q.append(card[0])
    st = card[0] # 기준
    
    for i in range(1, len(card)):
        if st >= card[i]:
            q.appendleft(card[i])
            st = card[i] # 기준은 매번 변하는 변수
        else:
            q.append(card[i])
            
    print(''.join(q))

 

파이썬에서 기본으로 제공하는 덱을 이용해서 풀었다.

항상 리스트의 맨 왼쪽에 있는 걸 기준으로 잡고

기준 보다 작으면 왼쪽에 append 해주고

기준 보다 크다면 오른쪽에 append 해주는 코드를 짰다.