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

(Python/🥈3)백준 알고리즘즘 1254번: 팰린드롬 만들기

by windy7271 2023. 6. 29.
728x90
반응형

 

문제 바로가기 

https://www.acmicpc.net/problem/1254
백준알고리즘 팰린드롬 만들기

 

문제:

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

 

동호는 규완이를 위한 깜짝 선물을 준비했다. 동호는 규완이가 적어놓고 간 문자열 S에 0개 이상의 문자를 문자열 뒤에 추가해서 팰린드롬을 만들려고 한다. 동호는 가능하면 가장 짧은 문자열을 만들려고 한다.

 

동호가 만들 수 있는 가장 짧은 팰린드롬의 길이를 출력하는 프로그램을 작성하시오.

입력:

 

첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 최대 50이다.

출력:

 

첫째 줄에 동호가 만들 수 있는 가장 짧은 팰린드롬의 길이를 출력한다.

 

풀이:

 

import sys
sys.stdin = open('/Users/song/Desktop/Python/Python/h.txt', 'r')

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

for i in range(len(word)):

    if word[i:] == word[i:][::-1]:
        print(len(word) + i)
        break

 

rstrip() 때문에 몇번을 틀렸다..

팰린드롬 맨 앞에서부터 뒤집은거랑 비교해서 같으면 길이만큼 출력하고

안되면 1개씩 늘려가면서 비교해간다.

qwerty

일때 qwerty 랑 ytrewq 맞지 않으면 werty랑 ytrew 이런식으로 뒤집어서 같을때까지 한다.

반응형

댓글