더북(TheBook)

icon_wait

 

재귀 호출의 이해를 돕는 방법

자기가 자기를 호출한다는 개념을 이해했더라도 막상 재귀 호출 프로그램을 보면 머릿속이 혼란스러울 때가 많습니다. 그럴 때는 다음 방법을 이용해 보세요.

 

① 종이에 직접 함수 호출 과정을 적어 보세요. 함수가 호출될 때마다 안쪽으로 들여 쓰고, 값이 반환되면 다시 바깥쪽으로 돌아가는 식으로 과정을 적다 보면 중첩된 함수 호출을 이해하는 데 도움이 됩니다(앞쪽에서 본 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

 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.