https://www.acmicpc.net/problem/1251
1단어를 3개로 나누고 이거에 최소값을 구해야 한다라고 생각했을 때 방법이 막막했다.
하지만 python의 max, min함수를 통해 모든 조합의 string을 리스트에 넣고 min함수를 때려버리면 좋겠다고 생각했다.
모든조합의 string을 만드려면 3개로 나누는 기준이 필요한데 i j k 3개의 변수를 두고 단어는 무조껀 1개 이상의 문자를 포함하라고 했기 때문에 i : 0 ~ len(data)-2, j : i+1 ~ len(data)-1, k : j+1 ~ len(data)의 조합을 가질 수 있는 것이다.
문자열 slice를 이용하여 reverse를 시키면 끝!
data = input()
res = []
for i in range(len(data)-2):
for j in range(i+1, len(data)-1):
for k in range(j+1, len(data)):
temp = data[:j][::-1] + data[j:k][::-1] + data[k:][::-1]
res.append(temp)
print(min(res))
'Algorithm > Algorithm Problem' 카테고리의 다른 글
백준 18111 마인크래프트 (0) | 2022.02.17 |
---|---|
백준 1213 & 팰린드롬 알고리즘(Palindrome Algorithm) (0) | 2022.02.17 |
백준 1991 트리 순회 (0) | 2022.02.17 |
Python Asterisk(*) 사용 용도 (0) | 2022.01.03 |
백준 15649,15650 N과 M(Backtracking) (0) | 2021.11.21 |