[백준 1254] 팰린드롬 만들기

Junyoung Park·2022년 3월 1일
0

코딩테스트

목록 보기
133/631
post-thumbnail

1. 문제 설명

팰린드롬 만들기

2. 문제 분석

팰린드롬은 문자열 중간을 기준으로 같은 문자가 반복되는 특수한 케이스다. 홀수, 짝수 여부에 따라 팰린드롬을 확인하자.

3. 나의 풀이

import sys

s = sys.stdin.readline().rstrip()

def is_palindrome(s):
    if len(s) % 2 == 0:
        right = len(s) // 2
        left = right - 1

    else:
        mid = len(s) // 2
        left = mid - 1
        right = mid + 1

    while left >= 0 and right <= len(s) - 1 and s[left] == s[right]:
        left -= 1
        right += 1

    if left == -1 and right == len(s): return True
    else: return False
    # 문자열 길이에 따라 팰린드롬 체크

if is_palindrome(s): print(len(s))
else:
    tmp = ''
    for i in range(len(s)):
        tmp += s[i]
        # tmp는 팰린드롬이 되기 위해 s 뒤에 거꾸로 더해줄 문자열
        if is_palindrome(s+tmp[::-1]): break

    print(len(s)+len(tmp))
profile
JUST DO IT

0개의 댓글