반응형
문제
동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다.
동호는 규완이를 위한 깜짝 선물을 준비했다. 동호는 규완이가 적어놓고 간 문자열 S에 0개 이상의 문자를 문자열 뒤에 추가해서 팰린드롬을 만들려고 한다. 동호는 가능하면 가장 짧은 문자열을 만들려고 한다.
동호가 만들 수 있는 가장 짧은 팰린드롬의 길이를 출력하는 프로그램을 작성하시오.
문제풀이
s=input()
for i in range(len(s)):
#01
if s[i:]==s[i:][::-1]:
#02
print(len(s)+i)
quit()
- #01 : 가장 빠른 팰린드롬을 찾기위해 for문을 통해 조건을 찾는다.
시작은 s 자체가 팰린드롬인 경우이다.
끝은 s의 모든 요소가 팰린드롬 형태가 아닌 경우이다.
- #02 : 만약 조건에 만족한 i 값이라면 len(s)+i한 값을 출력하고 종료한다.
EX) abcba -> for문에서 i=0에서 조건만족 -> 5출력
abcde -> for문에서 i=4에서 조건만족 -> 9출력 (abcdedcba)
'프로그래밍 > 백준' 카테고리의 다른 글
[알고리즘] 백준 18221 파이썬 - 교수님 저는 취업할래요 (1) | 2023.03.04 |
---|---|
[알고리즘] 백준 2503 파이썬 - 숫자 야구 (1) | 2023.03.02 |
[알고리즘] 백준 2252 파이썬 - 줄 세우기 (위상정렬) (2) | 2023.02.28 |
[알고리즘] 백준 14426 파이썬 - 접두사 찾기 (1) | 2023.02.27 |
[알고리즘] 백준 21736 파이썬 - 헌내기는 친구가 필요해 (3) | 2023.02.23 |