[백준] 1254 - 팰린드롬 만들기 / Python / 실버 2

KimYoungWoong·2022년 7월 25일
0

BOJ

목록 보기
2/31
post-thumbnail

🚩문제 주소


문제 설명


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

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

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


입력


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

출력


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

입출력 결과


입력출력
abab5
abacaba7
qwerty7
abdfhdyrbdbsdfghjkllkjhgfds38

📄풀이


문자열을 앞에서부터 한자리씩 옮겨가며 자른 것과 자른 것을 뒤집은 문자열이 같다면,
문자열의 길이에 자리 숫자를 더해서 출력합니다.
Ex)
i = 0일 때, qwerty != ytrewq
i = 1일 때, werty != ytrew
i = 2일 때, erty != ytre
i = 3일 때, rty != ytr
i = 4일 때, ty != yt
i = 5일 때, y == y 이므로 qwerty의 길이인 6에 i=5를 더해서 11이 정답입니다.


👨‍💻코드


s = input()

for i in range(len(s)):
  if s[i:] == s[i:][::-1]:
    print(len(s)+i)
    break
profile
블로그 이전했습니다!! https://highero.tistory.com

0개의 댓글