Baekjoon

[백준] 1254 팰린드롬 만들기 (실버2) / 문자열

hellosonic 2023. 4. 27. 22:08

문제요약

나의 코드 및 설명

s = list(input())
r_s = s[::-1]

if s == r_s:
    print(len(s))
else:
    min_ans = len(s)*2
    ans = len(s)*2
    for i in range(len(r_s)):
        #뒤집은 문자열을 하나하나 떼어서 붙여본다.
        check=s+r_s[i:len(r_s)]
        #만약 뒤집은 문자열이 오리지날과 일치한다면 팰린드롬이다.
        if check == check[::-1]:
            ans = len(check)
            if min_ans > ans:
                min_ans = ans
    print(min_ans)

피드백

문자열 문제 연습하다가 만난 문제. 처음에는 어떻게 문제를 풀까 10분 이상 고민한 것 같다. 그러다가 가장 긴 팰린드롬 문자열이 나오게 될 경우는 주어진 문자열을 완전히 뒤집어서 붙인 경우일 테고, 가장 짧은 팰린드롬 문자열은 맨 앞의 문자를 맨 뒤에 붙인 경우일 것이라고 생각을 했고, 정답 판정을 받을 수 있었다.