카테고리 없음

항해99 리부트코스 알고리즘 3주 4일차 백준 13417 카드 문자열

Albosa2lol 2024. 8. 1. 14:27

https://www.acmicpc.net/problem/13417

 

def create_card_string(n, cards):
    result = [cards[0]]  # 첫 번째 카드는 무조건 첫 번째 위치에 놓음
    
    for i in range(1, n):
        if cards[i] <= result[0]:
            result.insert(0, cards[i])  # 카드가 현재 문자열의 첫 번째 문자보다 작거나 같으면 앞에 추가
        else:
            result.append(cards[i])  # 그렇지 않으면 뒤에 추가
    
    return ''.join(result)

def main():
    import sys
    input = sys.stdin.read
    data = input().split()
    
    t = int(data[0])
    index = 1
    
    results = []
    for _ in range(t):
        n = int(data[index])
        cards = data[index+1:index+n+1]
        index += n + 1
        result = create_card_string(n, cards)
        results.append(result)
    
    for result in results:
        print(result)

if __name__ == "__main__":
    main()