[BOJ] 백준 1254번 팰린드롬 만들기 문제 풀이 (Python)
Updated:
1. 문제 풀이 방법
문자열이 팰린드롬이 아니면 문자열 뒤에 0개 이상의 문자를 추가해 팰린드롬을 만드는 문제이기 때문에 팰린드롬을 검사하는 함수를 만들어서 문제를 풀었다.
- 팰린드롬 함수를 이용해 팰린드롬인지 검사하기
- 만약 팰린드롬이 아니라면 문자열 앞 글자부터 역순으로 해서 1글자씩 더한다.
- 앞 글자부터 역순으로 더하는 이유는 팰린드롬이 좌우 대칭인 문자열을 뜻하기 때문이다.
2. 풀이
import sys
def input(): return sys.stdin.readline().rstrip()
def is_palinedrome(s):
length = len(s)
for i in range(length//2):
if s[i] != s[-(i+1)]:
return False
return True
s = input()
length = len(s)
for i in range(length+1):
if is_palinedrome(s+s[:i][::-1]):
print(len(s+s[:i][::-1]))
break
배열 뒤에 [::-1]
을 붙이면 역순으로 접근할 수 있다.
Leave a comment