본문 바로가기

BOJ/Python

[BOJ/백준] 1251 - 단어 나누기 (Python)

문제

문제링크

단어를 세 개로 나눠 각각을 뒤집어 다시 합친다.

이렇게 만들 수 있는 단어 중 사전순으로 가장 앞서는 단어를 출력하라.

 

풀이

각 파트는 길이가 1 이상인 단어이므로, 중첩 for문을 사용하여 slicing한다.

이를 인덱스를 활용해 뒤집어 합친 후 리스트에 추가한다.

문자열로 이루어진 리스트를 정렬할 때 사전순으로 정렬되므로 맨 앞의 요소를 출력하면 된다.

 

코드

s=input()

length=len(s)
words=[]
for i in range(1, length-1):
  for j in range(i+1, length):
    A, B, C = s[:i], s[i:j], s[j:]
    new_word = A[::-1]+B[::-1]+C[::-1]
    words.append(new_word)
words.sort()
print(words[0])