https://www.acmicpc.net/problem/13417
문제
해설
- 태욱이가 만들 수 있는 카드 문자열 중 사전 순으로 가장 빠른 문자열을 출력해야함
- 처음 뽑은 카드를 기준으로 문자열을 비교하여 사전순이 빠른 문자는 왼쪽에, 그렇지 않으면 오른쪽에 붙임
- 즉, 왼쪽 오른쪽에 자유롭게 푸쉬를 할 수 있는 자료구조는 ? → 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))
'Algorithm > DataStructure' 카테고리의 다른 글
[Python] 백준 1764 듣보잡 (0) | 2022.07.08 |
---|---|
[Python] 백준 1417 국회의원 선거 (0) | 2022.07.08 |
[Python] 백준 10799 쇠막대기 (0) | 2022.07.08 |
[Python] 백준 1874 스택 수열 (0) | 2022.07.08 |
[Python] 백준 3986 좋은 단어 (0) | 2022.07.08 |
댓글