문제요약

나의 코드 및 설명
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가 출력된다. 복잡해보였지만 풀이 자체는 간단했던 문제. 문자열을 연습할 수 있어서 좋았다.
'Baekjoon' 카테고리의 다른 글
[백준] 13413 오셀로 재배치 (실버4) (0) | 2023.05.07 |
---|---|
[백준] 1181 단어 정렬 (실버5) / key = lambda x: ~ (0) | 2023.05.07 |
[백준] 1120 문자열 (실버5) / 문자열 (0) | 2023.04.27 |
[백준] 1254 팰린드롬 만들기 (실버2) / 문자열 (0) | 2023.04.27 |
[백준] 7785 회사에 있는 사람 (실버5) / 시간초과 해결, 리스트, 딕셔너리 시간복잡도 (0) | 2023.04.27 |
문제요약

나의 코드 및 설명
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가 출력된다. 복잡해보였지만 풀이 자체는 간단했던 문제. 문자열을 연습할 수 있어서 좋았다.
'Baekjoon' 카테고리의 다른 글
[백준] 13413 오셀로 재배치 (실버4) (0) | 2023.05.07 |
---|---|
[백준] 1181 단어 정렬 (실버5) / key = lambda x: ~ (0) | 2023.05.07 |
[백준] 1120 문자열 (실버5) / 문자열 (0) | 2023.04.27 |
[백준] 1254 팰린드롬 만들기 (실버2) / 문자열 (0) | 2023.04.27 |
[백준] 7785 회사에 있는 사람 (실버5) / 시간초과 해결, 리스트, 딕셔너리 시간복잡도 (0) | 2023.04.27 |