본문 바로가기
컴퓨터/알고리즘

[재귀함수] 재귀함수 뜻과 python예시, maximum recursion depth 스택 구현 (1)

by 버니케이 2022. 8. 5.
반응형

 

 

재귀함수

Recursion Function

 

재귀함수가 모냐면은 자기 자신을 다시 호출하는거에여

 

 


 

 

재귀함수 예시

 

이게 대표적인 재귀함수에여

def 재귀함수():
    print('재귀인거시야')
    재귀함수()

재귀함수()

재귀함수 안에 재귀함수가 있죠

 

 

파이썬은 기본적으로 최대 재귀 깊이 제한 있어서 중간에 막혀여

오류뜬다 소리져

오류가 왜뜨냐면 바닥이 드러나서입니당

 

 

 

 

 

count  몇번만에 바닥이 드러나는지 확인해보께여

count = 0
def 재귀():
    global count
    print(count, '번째 재귀인거시야')
    count += 1
    재귀()

재귀()

 

997번째에서 나네여 (0부터 시작합니당)

 

 

 

RecursionError: maximum recursion depth exceeded while calling a Python object

maximum recursion depth 가 최대 재귀 깊이 라는 뜻이구여

바닥찍었다는거죠

 

 

 

바닥이 드러나서라는거 스택 생각하면 됩니다.

재귀함수는 일종의 스택이에요

쌓아놓고 하나씩 꺼내서 호출하다가 바닥이 보이면 오류가 뜨는거임

 

 

 


 

 

어찌되었든 바닥이 보이면 오류가 뜨니까

코테에서 재귀함수 때는 종료조건을 걸어줘야합니당

 

def 나(i):
    if i == 5:
        return
    print(i, '번째 집어넣는중 <- ')
    나(i + 1)
    print(i, '번째 빼는중 -> ')

나(1)

i 가 5가 되면 return 으로 종료조건을 걸어줬습니다.

 

 

이런느낌이져

gif 였으면 더 느낌이 났을텐뎅...

반응형

댓글