알고리즘 공부/백준

(Python)백준 코딩테스트 연습 - 팰린드롬 만들기(1254)

HRuler 2023. 3. 15. 14:14

1. 문제

https://www.acmicpc.net/problem/1254

 

1254번: 팰린드롬 만들기

동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는

www.acmicpc.net

2. 풀이

import sys
input = sys.stdin.readline

# s : 펠린드롬 만들기 전 문자열
s = input().strip()

felLen = 0
sLen = len(s)
maxLen = sLen * 2
for i in range(sLen, maxLen + 1):
    if sLen < i:
        addStr = list(s[0:i-sLen])
        addStr.reverse()
        felStr = s + ''.join(addStr)
    else:
        felStr = s
    if i % 2 == 0:
        felStan = i // 2
    elif i % 2 == 1:
        felStan = (i // 2) + 1
    isFel = True
    for j in range(felStan, i):
        if felStr[j] != felStr[i - j - 1]:
            isFel = False
            break
    if isFel:
        felLen = i
        break
print(felLen)