카테고리 없음

재귀함수

왕초보코딩러 2023. 9. 26. 00:00
728x90

재귀함수란?

함수가 자기 스스로를 호출하는 함수.

반복문(for문, while문) 없이 반복문처럼 동작한다.

그러나 스택 오버 플로우(함수를 끝내지 않고 또 함수를 호출하는 것을 반복하면 콜스택의 저장 공간이 부족해짐)가 날 수 있기 때문에 조심해야 한다.

재귀함수를 사용하면 큰 문제를 작은 하위 문제들로 쪼갤 수 있다.

 

 

<재귀 함수 구성>

-베이스 케이스: 더 작은 문제들로 쪼갤 필요 없이, 답이 나와 있는 경우

-재귀 케이스: 더 작은 하위 문제들로 쪼개야 하는 경우

 

재귀 함수 만드는 법

하위 문제를 찾는다 -> 베이스 케이스와 재귀 케이스를 정한다 -> 함수를 구현 한다.

 

재귀함수를 기준으로

재귀함수 위는 먼저 실행

재귀함수 아래는 나중에 실행

 

ex) 각 자리 수의 합 더하기

하위 문제: 마지막 자리 수 제외 나머지 자리 수를 더함 -> 마지막 자리 수를 더함
베이스 케이스: n이 일의 자리일 때 (n<10)
재귀 케이스 : n > 10

 

마지막 자리 수 제외 하는 법: n // 10

마지막 자리 수 구하는 법: n % 10

def sumDigit(n):
    if n < 10:
        return n
    return sumDigit(n // 10) + (n % 10)

 

2023.09.16 - [Python] - [Python] 재귀함수를 이용한 리스트 최대, 최소 값 찾기

 

[Python] 재귀함수를 이용한 리스트 최대, 최소 값 찾기

리스트에서 가장 큰 값 구하기 하위 문제: 리스트의 마지막 값 제외 나머지의 최댓값을 구함 -> 그 값과 리스트의 마지막 값과 비교 베이스 케이스: 리스트의 길이가 1개 이하일 때 len(arr)

dogfoot1.tistory.com

 

2023.05.26 - [Python] - [Python] 재귀함수 삼각수

 

2023.09.12 - [분류 전체보기] - [자바스크립트] 재귀함수를 사용한 팩토리얼 함수 만들기

 

[자바스크립트] 재귀함수를 사용한 팩토리얼 함수 만들기

팩토리얼이란? https://ko.wikipedia.org/wiki/%EA%B3%84%EC%8A%B9 계승 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 계승(繼承)에 대해서는 왕위 계승 문서를 참고하십시오. 수학에서,

dogfoot1.tistory.com