[Boj문제풀이]

[Boj/백준] 13417 Python

ki7348 2021. 9. 8. 19:51

문제출처: 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