백준 13417번 파이썬

정재혁·2022년 7월 20일
0

백준 13417번 카드 문자열

문제


입력 및 출력 값


풀이:

해당 문제는 왼쪽부터 순서대로 리스트의 값을 꺼내 만들어진 문자의 왼쪽 혹은 오른쪽에 붙이는 문제이다. 즉 하나씩 리스트에서 꺼내 이어붙이는 방식이다.

이때 키워드는 사전순으로 가장 빠른 단어를 만드는 것인데, 이를 위해선 만들고 있는 단어의 시작값보다 알파벳 순서가 빠르거나 같다면 단어의 맨 앞에 붙이고, 그게 아니라면 맨 뒤에 붙인다.

즉 덱을 이용해 문제를 푼다고 생각하면 된다.


코드:

testcase = int(input())

for _ in range(testcase):
    N = int(input())
    lst = list(input().split())
    ans_lst =[lst.pop(0)]
    for i in lst:
        if ans_lst[0] >= i:
            ans_lst.insert(0,i)
        else:
            ans_lst.append(i)

    for i in ans_lst:
        print(i,end='')
    print()

혹은

testcase = int(input())

for _ in range(testcase):
    N = int(input())
    lst = list(input().split())
    ans_lst =[lst.pop(0)]
    for i in lst:
        if ord(ans_lst[0]) >= ord(i):
            ans_lst.insert(0,i)
        else:
            ans_lst.append(i)

    for i in ans_lst:
        print(i,end='')
    print()

두번째의 경우 ord 값을 이용해 문제를 풀었다.

profile
저는 정재혁임니다^___^

0개의 댓글