문제 출처 : https://www.acmicpc.net/problem/25501

문자열이 주어졌을 때,
1. 팰린드롬인지 판별하고
2. 재귀함수가 몇 번 호출되었는지 함께 출력하는 문제다.
팰린드롬이란, 앞에서부터 읽었을 때와 뒤에서부터 읽었을 때가 같은 문자열이다.
import sys
# sys.setrecursionlimit(10000)
input = sys.stdin.readline
# 팰린드롬이란, 앞에서부터 읽었을 때와 뒤에서부터 읽었을 때가 같은 문자열
def recursion(s,l,r):
global cnt
cnt += 1
if l >= r: # 다 돌았는데 0이 나온적 없다? 팰린드롬임 -> 1 리턴
return 1
elif s[l] != s[r]: # 같지 않다면 펠린드롬이 아님 -> 0 리턴
return 0
else: # 아무것도 안걸렸으면 재귀. 가운데로 하나씩 모으면서 다시 검사.
return recursion(s,l+1,r-1);
def isPalindrome(s):
global cnt
cnt = 0 # 케이스 시작마다 리셋
res = recursion(s,0,len(s)-1)
return res, cnt
T = int(input())
for i in range(T):
S = input().strip()
print(*isPalindrome(S))