Algorithm/Problems
[백준/파이썬] 25501번 재귀의 귀재
공부좀하시졍
2022. 11. 9. 14:50
https://www.acmicpc.net/problem/25501
25501번: 재귀의 귀재
각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다.
www.acmicpc.net
import sys
read = sys.stdin.readline
n = int(read())
def recursion(s, l, r):
global cnt
cnt += 1
if l >= r: return 1
elif s[l] != s[r]: return 0
else: return recursion(s, l+1, r-1)
def isPalindrome(s):
return recursion(s, 0, len(s)-1)
for _ in range(n):
string = read().rstrip()
cnt = 0
print(isPalindrome(string), cnt)
처음엔 문자열 받고 append로 리스트에 추가해주려고 했는데 그럴 필요가 없었다.
rstrip()함수를 이용해 개행을 없애 문자열을 입력 받고 cnt를 0으로 초기화 해준다.
이후 힌트에 나와있는 코드의 recursion에 cnt를 한번씩 더해준다.
이때 사용된 cnt변수는 global을 사용함으로써 지역변수가 아닌 전역변수를 사용한 것이다.