[Python] 백준 알고리즘 13417번 - 카드 문자열
2022. 5. 4. 21:46ㆍ알고리즘/문제풀이
[Python] 백준 알고리즘 13417번 - 카드 문자열
문제 출처 : https://www.acmicpc.net/problem/13417
접근 방법
문자를 입력받고 사전 순으로 가장 빠르게 정렬해야 하는 문제이다. 문자의 경우 처음에 하나의 집합으로 입력을 받고 나서 이제 그 문자들 사이에서 사전 순으로 왼쪽 혹은 오른쪽으로 정렬하는 부분이 문제가 요구하는 풀이인듯하다. 문자를 사전 순으로 비교해가면서 나열하는 것은 아스키코드를 떠올려서 해결하였다.
https://skyriv312079.tistory.com/23
사전순으로 앞선 문자는 아스키코드 상으로도 숫자가 비교 문자보다 작을 것이라 생각하였고 이를 토대로 풀이 코드를 작성하였다. 아스키코드를 이용하여 비교를 한 뒤 deque를 이용하여 각 문자를 문제에서 요구하는 좌, 우에 넣어주었고 추후에 word변수를 통해 print 하였다.
풀이 코드
from collections import deque
n = int(input())
for _ in range(n):
time = int(input())
S = list(map(str, input().split(" ")))
word = ""
queue = deque()
queue.appendleft(S[0])
for i in range(1, len(S)):
if ord(S[i]) > ord(queue[0]):
queue.append(S[i])
else:
queue.appendleft(S[i])
for i in queue:
word += i
print(word)
'알고리즘 > 문제풀이' 카테고리의 다른 글
[Python] 백준 11728 - 배열 합치기 (0) | 2022.06.27 |
---|---|
[Python] 백준 알고리즘 1302번 - 베스트셀러 (0) | 2022.05.06 |
[Python] 백준 알고리즘 14425번 문자열 집합 (0) | 2022.05.04 |
[Python] 백준 알고리즘 13549번 - 숨바꼭질 3 (0) | 2022.04.12 |
ASCII Table - 아스키 코드표 (0) | 2022.04.11 |