문제
알고리즘
- 반복문을 통해 세 개의 단어로 자를 수 있는 모든 경우의 단어를 구한다.
- 모든 경우의 단어를 뒤집은 후 다시 원래 순서로 합친 후 리스트에 추가한다.
- 사전 순으로 가장 앞선 단어를 출력하기 위해 리스트에서 제일 작은 단어를 출력한다.
코드
import sys
word = list(map(str, sys.stdin.readline().rstrip("\n")))
res = []
# 반복문을 통해 세 개의 단어로 자른다.
for i in range(1, len(word) - 1):
for j in range(i + 1, len(word)):
first = word[:i] # 첫 번째 단어
second = word[i:j] # 두 번째 단어
third = word[j:] # 세 번째 단어
# 각 단어를 뒤집는다.
first.reverse()
second.reverse()
third.reverse()
# 뒤집은 단어를 원래 순서로 합친 후 리스트에 추가
res.append("".join(first + second + third))
# 사전 순으로 가장 앞선 단어를 출력하기 위해
# 리스트에서 제일 작은 단어를 출력
print(min(res))
github
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 13413번(파이썬): 오셀로 재배치 (0) | 2022.01.14 |
---|---|
[baekjoon] 백준 5555번(파이썬): 반지 (0) | 2022.01.13 |
[baekjoon] 백준 2671번(파이썬): 잠수함식별 (0) | 2022.01.11 |
[baekjoon] 백준 1013번(파이썬): Contact (0) | 2022.01.10 |
[baekjoon] 백준 9996번(파이썬): 한국이 그리울 땐 서버에 접속하지 (0) | 2022.01.09 |