tc=int(input())
for i in range(tc):
    n=int(input())
    str=list(input().split())
    arr=[str[0]]

    for j in range(1, len(str)):
        left = arr[0]
        if str[j] <= left:
            arr.insert(0,str[j])
        else:
            arr.append(str[j])
    for j in arr:
        print(j, end='')
    print()

<코드 설명>

먼저 testcase를 입력받는다. 그리고 그만큼 for문을 반복시켜 각 카드의 개수와 카드에 적힌 알파벳을 입력받는다.

입력받아온 알파벳은 split하여 str에 list의 형태로 적용해주었다.

arr 배열을 만들어 str의 첫번째 값을 저장해주었다.

arr의 첫번째 원소가 str[j]원소보다 크거나 같을 때, arr배열의 첫번째 원소로 str[j] 원소를 삽입해준다.

그렇지 않다면, arr배열 맨 뒤에 str[j]원소를 삽입해준다.

이를 str list의 길이만큼 반복시켜주었다.

이렇게 구한 arr배열의 원소를 출력시켜주었다.

 

 

<실행 결과>

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 14425 문자열 집합  (0) 2022.11.06
[BOJ] 16499 동일한 단어 그룹화하기  (0) 2022.11.06
[BOJ] 1065 한수  (0) 2022.10.09
[BOJ] 2776 암기왕  (0) 2022.10.09
[BOJ] 9322 철벽 보안 알고리즘  (0) 2022.10.09

+ Recent posts