본문 바로가기

Algorithm

[TIL] 99클럽 코테 스터디 15일차 TIL - 그리디: <백준 13417 카드문자열>문제 풀이 with python

Today's keyword : 그리디, 문자열

 

 

📌 문제설명

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

📌 문제풀이

카드 문자열 문제는 가장 왼쪽에 있는 카드부터 차례대로 한 장씩 가져오며, 가져온 카드를 가져온 카드 가장 왼쪽 혹은 오른쪽에 놓으며 사전 순으로 가장 빠른 문자열을 만들어야 하는 문제입니다. 

## 카드 문자열 
t = int(input())
for _ in range(t): 
    n = int(input())
    card = list(input().split())

    s = card[0]
    for i in card[1:]: 
        if i + s > s: 
            s = s + i
        else: 
            s = i + s
    print(s)

카드 리스트에서 가장 왼쪽에 있는 카드를 기준으로 왼쪽에 두었을 때와 오른쪽에 두었을 떄를 비교하며, 어떤 방향에 두었을 때가 좋을 지 비교한 후, 사전 순으로 빠른 방향으로 문자열을 합쳐 문제를 해결합니다. 

 

📌 오늘의 회고 

문제 이해 후 코드 구현까지 오래 걸리지 않았습니다. 문자열 문제 유형은 상대적으로 평이한 것 같습니다. 

 

 

#99클럽 #코딩테스트준비 #개발자취업 #항해99 #TIL