728x90
반응형
문제 바로가기
문제:
동호와 규완이는 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 이런식으로 뒤집어서 같을때까지 한다.
반응형
댓글