재귀의 동작을 파악하는 문제
import sys
cnt = 0
def recursion(s, l, r):
global cnt
if l >= r:
return 1
elif s[l] != s[r]:
return 0
else:
cnt += 1
return recursion(s, l+1, r-1)
def isPalindrome(s):
global cnt
cnt += 1
return recursion(s, 0, len(s)-1)
for i in range(int(input())):
cnt = 0
print(isPalindrome(sys.stdin.readline().strip()), cnt)
재귀를 활용하여 정렬하는 방법을 배우는 문제
import sys
cnt = 0
def recursion(s, l, r):
global cnt
if l >= r:
return 1
elif s[l] != s[r]:
return 0
else:
cnt += 1
return recursion(s, l+1, r-1)
def isPalindrome(s):
global cnt
cnt += 1
return recursion(s, 0, len(s)-1)
for i in range(int(input())):
cnt = 0
print(isPalindrome(sys.stdin.readline().strip()), cnt)
재귀적인 패턴을 재귀함수로 찍는 문제
def recursion(n):
if n == 3 :
return ['***', '* *','***']
else :
i = int(n/3)
l = recursion(i)
result = []
for j in range(i) :
result.append(l[j]*3)
for j in range(i) :
result.append(l[j] + " "*i + l[j])
for j in range(i) :
result.append(l[j]*3)
return result
for i in recursion(int(input())):
print(i)