본문 바로가기
백준 알고리즘

파이썬) 백준 알고리즘 | 1254번 : 팰린드롬 만들기

by 코딩새내기_ 2022. 4. 4.

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

 

1254번: 팰린드롬 만들기

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

www.acmicpc.net

백준 1254 '팰린드롬 만들기' 문제입니다.

저의 아이디어를 설명하겠습니다.

일단 input을 test라고 하면 test + test[::-1][1:]을 만듭니다.

예를 들어서 input을 abacaba라고 하면 일단 abacaba'bacaba'를 만듭니다.

그리고 문자를 ''안에 있는 문자를 하나씩 지워가면서 체크해줍니다.

위에 예로 진행하면

abacaba'bacaba'

abacaba'acaba'

abacaba'caba'

abacaba'aba'

abacaba'ba'

abacaba'a'

abacaba

작은 따옴표는 구분하기 쉽게 하기 위해서 붙였습니다.

import sys
input = sys.stdin.readline

def palindrome(word, left, right):
    while left < right:
        if word[left] == word[right]:
            left += 1
            right -= 1
        else:
            return False
    return True

test = input().strip()
for i in range(1, len(test)+1):
    sample = test + test[::-1][i:]
    check = palindrome(sample, 0, len(sample)-1)
    if check is True:
        answer = len(sample)
print(answer)

댓글