잠깐만요
재귀 호출의 이해를 돕는 방법
자기가 자기를 호출한다는 개념을 이해했더라도 막상 재귀 호출 프로그램을 보면 머릿속이 혼란스러울 때가 많습니다. 그럴 때는 다음 방법을 이용해 보세요.
① 종이에 직접 함수 호출 과정을 적어 보세요. 함수가 호출될 때마다 안쪽으로 들여 쓰고, 값이 반환되면 다시 바깥쪽으로 돌아가는 식으로 과정을 적다 보면 중첩된 함수 호출을 이해하는 데 도움이 됩니다(앞쪽에서 본 60과 24의 최대공약수를 구하는 과정을 참조하세요).
② 예제로 사용할 입력 값은 작은 것이 좋습니다. 일단 종료 조건에 해당하는 값을 입력으로 넣은 다음 차차 입력 값을 높이면서 재귀 호출 과정을 따라가 보세요.
③ 함수의 입력 값을 화면에 출력하는 것도 도움이 됩니다. 예를 들어 gcd(a, b) 함수에 print() 함수를 추가한 다음 gcd(60, 24)를 실행하면 gcd(a, b) 함수가 연속해서 실행되는 과정을 직접 확인할 수 있습니다.
def gcd(a, b):
print(“gcd: “, a, b) # 함수 호출을 입력(인자) 값과 함께 화면에 표시
if b = = 0: # 종료 조건
return a
return gcd(b, a % b)
gcd: 60 24
gcd: 24 12
gcd: 12 0
12