개발/알고리즘

BOJ (13417) - 카드 문자열 Python

Oreorobin 2021. 4. 28. 20:53

아이디어

  1. cards 리스트에서 제일 첫번째 카드를 기준 카드로 설정
  2. 기준 카드보다 ASCII 번호 작다면 왼쪽, 크다면 오른쪽 삽입 

 

소스코드1

# https://www.acmicpc.net/problem/13417
T = int(input())
for _ in range(T):
    N = int(input())
    cards = list(map(str, input().split()))
    my = [cards[0]]
    for i in range(1,N):
        if ord(cards[i]) <= ord(my[0]):
            my.insert(0,cards[i])
        else:
            my.append(cards[i])
    print(''.join(my))

*꼭 ord 안써도 ASCII값 비교가능

*sys.stdin.readline을 사용하게 되면 개행 문자열 까지 전부 들어간다.

 

소스코드2

# https://www.acmicpc.net/problem/13417
T = int(input())
for _ in range(T):
    N = int(input())
    cards = list(map(str, input().split()))
    my = [cards[0]]
    for i in range(1,N):
        if cards[i] <= my[0]:
            my.insert(0,cards[i])
        else:
            my.append(cards[i])
    print(''.join(my))