문제
단어를 세 개로 나눠 각각을 뒤집어 다시 합친다.
이렇게 만들 수 있는 단어 중 사전순으로 가장 앞서는 단어를 출력하라.
풀이
각 파트는 길이가 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])
'BOJ > Python' 카테고리의 다른 글
[BOJ/백준] 2057 - 팩토리얼 분해 (Python) (1) | 2025.05.08 |
---|---|
[BOJ/백준] 1418 - K-세준수 (Python) (0) | 2025.05.08 |
[BOJ/백준] 1065 - 한수 (Python) (0) | 2025.05.07 |
[BOJ/백준] 4673 - 셀프 넘버 (Python) (1) | 2025.05.07 |
[BOJ/백준] 4949 - 균형잡힌 세상 (Python) (0) | 2025.05.07 |