[BOJ] 1251. 단어나누기(python)

레몬커드요거트·2025년 1월 17일
0

코딩테스트준비

목록 보기
4/6
post-thumbnail
#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[:1][::-1]

word = "hello"

# 단계별 동작
step1 = word[:1]  # "h"
step2 = step1[::-1]  # "h"

print(word[:1][::-1])  # 출력: "h"

word[:1][::-1]은 문자열의 첫 번째 문자만 추출한 뒤 뒤집습니다.

word[:1:-1]

word = "hello"

# 동작
result = word[:1:-1]  # "olle" (마지막 문자부터 두 번째 문자까지)

print(result)  # 출력: "oll"
표현식설명예제 결과 (word = "hello")
word[:1][::-1]첫 번째 문자 추출 후 뒤집음"h"
word[:1:-1]끝에서 시작해 1번째 앞까지 역순 추출"oll"
profile
비요뜨 최고~

0개의 댓글