word = input()
stack = []
for i in range(len(word)-2):
for j in range(i+1, len(word)-1):
for k in range(j+1, len(word)):
t = word[:j][::-1] + word[j:k][::-1] + word[k:][::-1]
stack.append(t)
print(min(stack))
<코드 설명>
먼저 word를 input받아주었다. 이를 세 부분으로 나누어야 한다.
나눠지는 단어의 부분이 1이상이어야하므로 첫번째 for문을 len(word)-2까지, 두번째 for문을 i+1부터 len(word)-1까지, 마지막 for문을 j+1부터 len(word)까지 검사해주도록 하였다.
변수 t에 각각 반대로 뒤집어진 결과를 합하여 저장해주었고 이를 stack에 append해주었다.
이 중 사전 순으로 가장 앞에 있는 단어를 출력해주었다.
<실행 결과>
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ] 2869 달팽이는 올라가고 싶다 (0) | 2022.06.19 |
---|---|
[BOJ] 10773 제로 (0) | 2022.06.19 |
[BOJ] 4949 균형잡힌 세상 (0) | 2022.05.28 |
[BOJ] 9012 괄호 (0) | 2022.05.28 |
[BOJ] 1094 막대기 (0) | 2022.05.22 |