python
BOJ 1251. 단어나누기(구현, Greedy)
륵기
2022. 10. 3. 15:37
728x90
반응형
https://www.acmicpc.net/problem/1251
1251번: 단어 나누기
알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다
www.acmicpc.net
- 최소 단어 길이는 1 이상이어야함
- 이중반복문에서 첫 반복문 인덱스는 끝까지 가지 않고 전체 단어 길이에서 1을 뺀다
- 내부 반복문의 경우에는 앞에서 +1 한 인덱스부터 시작한다
- 첫단어는 apple을 예시로 들때 a로 시작, 두번째는 p 세번째는 ple
- 그다음 반복문을 계속 돌면서 단어 길이를 조금씩 늘려가며 비교
word = list(input())
result = []
for i in range(1, len(word) - 1):
for j in range(i+1, len(word)):
first = word[:i]
sec = word[i:j]
third = word[j:]
first.reverse()
sec.reverse()
third.reverse()
result.append(''.join(first + sec + third))
print(sorted(result)[0])
728x90
반응형