[Code Kata] 재귀함수

do yeon kim·2022년 8월 26일
0
재귀함수

재귀함수란 함수 안에서 자기 자신을 불러서 동작하는 함수를 의미한다.

재귀함수에서 중요한 점은 return을 끝내는 시점을 설정해주어야 한다는 점이다.

만약 재귀함수에서 끝나는 시점을 설정하지 않는다면, 계속해서 호출하기 때문에 오류가 발생한다.

오류코드
RecursionError: maximum recursion depth exceeded while calling a Python object



재귀함수 문제

문자열을 입력받으면 재귀함수를 이용해서 문자열을 반대로 만들어라!
ex) hello -> olleh

def reverseString(str):
  if len(str) == 0: # return을 끝내는 시점 설정
    return str
  else:
    return reverseString(str[1:]) + str[0] 
    # 문자열을 슬라이싱으로 새로운 문자열을 만들어서 재귀함수 호출
	# str[0] 번째 해당하는 문자열을 return 값으로 받는다.
	# 재귀함수가 수행 될 때마다, 결과 값으로 문자열의 str[0]이 앞에 추가된다.
print(reverseString(str))


def reverseString(str):
    result = "" #빈 문자열을 만들었다.
    result += str[-1] # 빈 문자열에 현재 문자열의 마지막 해당하는 문자를 담는다.
    str = str[0:len(str)-1] # 새로운 문자령을 슬라이싱을 통해서 만든다.
    if len(str) == 0: # 재귀함수가 끝나는 종료시점을 표기한다.
        return result
    else:    
        return result + reverseString(str)  

print(reverseString(str))

0개의 댓글