문제출처: https://www.acmicpc.net/problem/13417
13417번: 카드 문자열
입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫째 줄에 테스트 케이스의 개수를 나타내는 자연수 T가 주어진다. 각각의 테스트 케이스의 첫째 줄에 처
www.acmicpc.net
1. 문제 접근 방식
arr 리스트에 처음 문자를 삽입하고 나머지 문자를 arr리스트의 원소와 비교하면서 0번째에 insert하거나 마지막에 붙이거나 한다.
2. 내가 푼 코드
import sys
case = int(sys.stdin.readline())
for _ in range(case):
x = int(sys.stdin.readline())
queue= list(map(str,sys.stdin.readline().split()))
arr = [queue[0]]
for i in range(1,x):
if queue[i] <= arr[0]:
arr.insert(0, queue[i])
else:
arr.append(queue[i])
print(''.join(arr))
3. 결과 및 느낀점
insert 함수 대신에 deque을 import 해서 appendleft하는게 시간복잡도 측면에서 이득이 된다고 한다.
덱을 사용하자.
'[Boj문제풀이]' 카테고리의 다른 글
[Boj/백준] 5464 Python (0) | 2021.09.11 |
---|---|
[Boj/백준] 18115 Python (0) | 2021.09.10 |
[Boj/백준] 15828 Python (0) | 2021.09.07 |
[Boj/백준] 10845 Python (0) | 2021.09.06 |
[Boj/백준] 1406 Python (0) | 2021.09.03 |