주어진 문제는 문자열이 팰린드롬인지 확인하는 것입니다. 팰린드롬은 앞에서 읽으나 뒤에서 읽으나 동일한 문자열을 말합니다. 이 문제는 재귀적인 방법을 사용하여 해결해야 합니다.
입력 | 출력 |
---|---|
ABBA | 1 4 |
ABC | 0 3 |
다음은 팰린드롬을 확인하는 Python 코드입니다.
def recursion(s, l, r, count):
count[0] += 1
if l >= r:
return 1
elif s[l] != s[r]:
return 0
else:
return recursion(s, l + 1, r - 1, count)
def isPalindrome(s):
count = [0]
result = recursion(s, 0, len(s) - 1, count)
return result, count[0]
# 입력을 받습니다.
T = int(input())
for _ in range(T):
s = input().strip()
result, cnt = isPalindrome(s)
print(result, cnt)
recursion
함수는 문자열 s
의 시작 인덱스 l
과 끝 인덱스 r
을 비교합니다. 또한, 재귀 호출 횟수를 기록하기 위해 count
리스트를 사용합니다.isPalindrome
함수는 recursion
함수를 호출하여 팰린드롬 여부와 재귀 호출 횟수를 계산합니다.2
ABBA
ABC
1 4
0 3
이 코드는 주어진 모든 조건을 만족하며, 각 입력에 대해 올바르게 팰린드롬 여부와 재귀 호출 횟수를 출력합니다.
이 문제는 재귀를 사용하여 문자열이 팰린드롬인지 확인하는 방법을 익히는 좋은 연습입니다. 제한 조건이 비교적 간단하므로 재귀 호출을 통해 문제를 쉽게 해결할 수 있습니다. 주어진 코드와 전략을 활용하여 문제를 해결할 수 있으며, 이를 백준 온라인 저지에 제출하여 올바르게 작동함을 확인할 수 있습니다.