1. 문제 출처
https://www.acmicpc.net/problem/1254
1254번: 팰린드롬 만들기
동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는
www.acmicpc.net
2. 풀이
파이썬의 slice 기능을 이용하면 간단하게 해결할 수 있다.
s = input()
# 전체 문자열을 역순으로 한 것과 문자열이 일치하면 이미 팰린드롬 문자열 이므로
# 문자열의 길이를 출력한다.
if s == s[::-1]:
print(len(s))
# 아닌 경우
else:
# 최악의 경우의 수는 마지막 문자를 기준으로 앞뒤를 같게 하는 경우 이므로
# 최대 문자열의 전체 길이 빼기 1 만큼 반복해준다.
for n in range(len(s)-1):
# 파이썬 리스트에서 인덱스를 음수로 사용할 수 있는데 이 경우
# [-N....-3,-2,-1] 와 같이 된다.
# s[n-len(s)::-1] 와 같이 쓰면 n-len(s) 부터 -len(s) 까지의 값을 가지고 온다.
temp = s+s[n-len(s)::-1]
# 전체 문자열을 역순으로 한 것과 문자열이 일치하면 팰린드롬 문자열 이므로
# 문자열의 길이를 출력한다.
if temp == temp[::-1]:
print(len(temp))
break
'알고리즘' 카테고리의 다른 글
1439-백준-뒤집기 (0) | 2023.02.13 |
---|---|
2618- 백준 - 경찰차 (0) | 2023.02.10 |
9996-백준-한국이 그리울 땐 서버에 접속하지 (0) | 2023.02.08 |
9536-백준-여우는 어떻게 울지? (0) | 2023.02.06 |
백준-1141-접두사 (0) | 2023.02.04 |