Baekjoon
[백준] 1251 단어 나누기 (실버5) / 문자열
hellosonic
2023. 4. 28. 19:01
문제요약
나의 코드 및 설명
string = list(input())
length = len(string)
check = ["z"]*length #이렇게 해야지 초기 비교 시 무조건 뒤집은 값으로 갱신됨
for i in range(1,length-1):
for j in range(i+1,length):
if check > string[:i][::-1] + string[i:j][::-1] + string[j:][::-1]:
check = string[:i][::-1] + string[i:j][::-1] + string[j:][::-1]
print("".join(map(str,check)))
피드백
처음에는 백트래킹으로 풀려고 했다. 그러나 생각보다 쉽지 않아서 그냥 단순 반복문으로 구현했다. 사전적으로 앞에 있는 문자열을 골라내기 위해 부등호를 사용했는데, 여기서 주의할 점은 check 변수를 string으로 초기화해놓으면 안된다는 것이다. 문제를 보면 입력한 문자열을 무조건 뒤집어야 되는데, 만약 abcdefg가 입력값일 경우, check 변수를 string으로 초기화해놓으면, 뒤집지 않은 값 즉, abcdefg가 출력된다. 복잡해보였지만 풀이 자체는 간단했던 문제. 문자열을 연습할 수 있어서 좋았다.