[문제]
https://www.acmicpc.net/problem/1251
[풀이]
단어 각각의 길이가 1 이상이어야 하기 때문에 첫 번째 단어는 len(s)-2까지, 두 번째 단어는 그다음부터 len(s)-1까지, 세 번째 단어는 len(s)까지 검사한다. 변수 temp에 순서대로 슬라이싱 해 역순으로 넣고 temp를 voca 리스트에 추가한다.
list를 출력하면 ['moletib', 'mboleti', 'mibolet', 'mtibole', 'metibol', 'ombleti' ••] 이런 식으로 조합 가능한 모든 문자열이 나오는데 사전 순으로 가장 앞서는 단어를 출력해야 되기 때문에 min(voca)를 출력한다.
[코드]
if __name__ == '__main__':
s = input()
voca = []
for i in range(len(s)-2):
for j in range(i+1, len(s)-1):
for k in range(j+1, len(s)):
temp = s[:j][::-1] + s[j:k][::-1] + s[k:][::-1]
voca.append(temp)
print(min(voca))
'문제풀이 > BOJ' 카테고리의 다른 글
[Python] BOJ/백준 1181번 단어 정렬 (0) | 2021.06.29 |
---|---|
[Python] BOJ/백준 1205번 등수 구하기 (0) | 2021.06.29 |
[Python] BOJ/백준 2204번 도비의 난독증 테스트 (0) | 2021.06.25 |
[Python] BOJ/백준 1475번 방 번호 (0) | 2021.06.24 |
[Python] BOJ/백준 2435번 기상청 인턴 신현수 (0) | 2021.06.23 |