본문 바로가기
알고리즘/완전탐색

[백준][Python] 1251번 단어 나누기

by 임짠짠 2022. 7. 21.
반응형
 

1251번: 단어 나누기

알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다

www.acmicpc.net

 

코드

word = input()
ans_list = []
for i in range(1,len(word)-1):
	ans = []
	for j in range(i+1,len(word)):
		ans = ((word[0:i:])[::-1])+((word[i:j:])[::-1])+((word[j::])[::-1])
		ans_list.append(ans)

ans_list.sort()
print(ans_list[0])

 

설명

단어를 3개로 나눌 수 있는 모든 경우의 수를 확인했다. 

word[0:i:], word[i:j:], word[j::]로 문자열을 3개로 나누고 [ : :-1]으로 뒤집어 준 후 3개를 하나로 합쳐줬다. 합친 단어는 ans_list에 넣어주었고 for문을 빠져나왔을 때 ans_list를 알파벳 순으로 정렬을 해서 가장 첫 번째 요소를 출력해줬다.

반응형

댓글