#mob/ite/l
#bom/eti/l
import sys
word = sys.stdin.readline().strip()
ans=[]
for i in range(1, len(word)-1):
for j in range(i+1, len(word)):
first = word[:i][::-1]
second = word[i:j][::-1]
third = word[j:][::-1]
ans.append(first+second+third)
ans.sort()
print(ans[0])
# mobitel
# len(word)=7
# for i in range(1,6):
# for j in range(i+1,7):
# i = 2, j=3
# word[:2][::-1] = mo
# word[2:3][::-1] = b
# word[3:][::-1] = itel
슬라이싱 할 때의 인덱스 범위와 리스트에서 요소 번호, 그리고 for문에서 range 범위가 각각 다르기 때문에 이 모든걸 고려해서 이중반복문 범위 설정을 하는 것이 제일 어려웠다
사실 실버가 아니라고 해도 무방한듯… 개인적으로 오히려 골드 문제가 더 쉬웠다
📌 나중에 다시 풀어보면 좋을 문제
word = "hello"
# 단계별 동작
step1 = word[:1] # "h"
step2 = step1[::-1] # "h"
print(word[:1][::-1]) # 출력: "h"
word[:1][::-1]
은 문자열의 첫 번째 문자만 추출한 뒤 뒤집습니다.
word = "hello"
# 동작
result = word[:1:-1] # "olle" (마지막 문자부터 두 번째 문자까지)
print(result) # 출력: "oll"
표현식 | 설명 | 예제 결과 (word = "hello" ) |
---|---|---|
word[:1][::-1] | 첫 번째 문자 추출 후 뒤집음 | "h" |
word[:1:-1] | 끝에서 시작해 1번째 앞까지 역순 추출 | "oll" |