https://www.acmicpc.net/problem/25501
# 백준 25501 재귀의 귀재
def recursion(s, l, r):
if l >= r: return 1, l+1
elif s[l] != s[r]: return 0, l+1
else:
return recursion(s, l+1, r-1)
def isPalindrome(s):
return recursion(s, 0, len(s)-1)
t = int(input())
for i in range(t):
s = input()
answer = list(isPalindrome(s))
print(answer[0], answer[1])
단순하게 생각해서 recursion 함수를 호출 할 때마다 $l$이 1씩 커지니까 마지막 $l$값이 호출 횟수라고 볼 수 있겠다 싶어서
함숫값을 return할 때 $l$+1을 return받았습니다. 그랬더니 통과했습니다.
다른 방법으로는 직접 수를세는 방법이었는데
cnt = 0
def recursion(s, l, r):
global cnt
cnt += 1
if l >= r: return 1, l+1
elif s[l] != s[r]: return 0, l+1
else:
return recursion(s, l+1, r-1)
def isPalindrome(s):
return recursion(s, 0, len(s)-1)
t = int(input())
for i in range(t):
s = input()
cnt = 0
answer = isPalindrome(s)
print(answer[0], answer[1])
cnt = 0 이라고 변수 할당하고
함수에서 로컬이 아닌 global 변수를 받기 위해 global cnt로 함수 내에서 사용할 수 있게 해줬습니다.
'알고리즘 > 백준' 카테고리의 다른 글
[Python] 백준 파이썬 2232 분해합 (0) | 2022.09.22 |
---|---|
[Python] 백준 파이썬 2798 블랙잭 (0) | 2022.09.21 |
[Python] 백준 파이썬 18870 좌표 압축 (0) | 2022.09.19 |
[Python] 백준 파이썬 10814 나이순 정렬 (0) | 2022.09.18 |
[Python] 백준 파이썬 1181 단어 정렬 (0) | 2022.09.17 |