개발 연습장/백준 문제풀이

[파이썬, Python] 백준 25501: 재귀의 귀재

LooanCheong 2023. 1. 16. 10:18
반응형

문제

https://www.acmicpc.net/problem/25501

 

25501번: 재귀의 귀재

각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다.

www.acmicpc.net

코드

import sys
input = sys.stdin.readline

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)

t = int(input())
for _ in range(t):
    cnt = 0
    s = input().rstrip()
    print(isPalindrome(s), cnt)

설명

다른 부분의 경우 크게 문제가 없었는데,
함수의 호출 횟수를 출력하기 위해 cnt를 사용했던 부분에 있어서 애를 좀 먹었다.
그래서 찾아본 결과 함수 안에서의 지역변수를 전역변수로 사용하는 방법이 global을 이용하는 것이었다.

'global cnt' 부분을 통해서 함수의 호출 횟수를 카운트할 수 있었다.

반응형