[알고리즘] 재귀함수

진주·2022년 3월 17일
0

알고리즘

목록 보기
3/3

재귀 함수 ?


예시 문제

합이 8인 경우의 수가 중복되기 때문에, set을 사용해야한다.

3개의 반복문을 통해 result를 구할 수 있다.


data 수가 많아진다면 ?

성분의 개수가 반복문의 개수가되어 코드를 구현하는데 어려움이 생긴다

재귀함수를 사용하여 코드를 구현해보도록 하자!


재귀 함수의 원리 ?

특정 조건에 의해서 호출 3에서 recur()이 호출되지 않으면 코드를 계속 읽어들여 함수가 종료된다.

이후 끝나지 않은 호출2를 그대로 읽어내려가고, 함수가 종료된다.

마찬가지로 호출1의 코드를 읽어내려가고, 함수가 종료된다.

반드시, 조건문을 활용하여 재귀함수 종료 조건을 삽입해야한다.


재귀 함수를 활용한 완전 탐색

if문 : index값이 배열의 길이와 동일해 졌을 때, 재귀함수가 마지막에 도달했음을 알려준다.

else문 : index값이 배열의 길이와 같지 않다면, 재귀함수를 진행한다.

ex) index값은 0부터 시작하며, data의 배열의 길이인 3과 같지 않기 때문에 재귀함수 본문이 적용된다.

배열의 성분을 중복해서 담지 않을 집합을 선언한다 result = set()

재귀함수를 호출한 뒤, print하면 동일한 결과가 출력된다.

재귀함수를 사용하면, 배열의 크기가 증가하더라도 코드가 복잡해지지 않고, 정확한 결과를 출력한다.


재귀 함수 활용 : 팩토리얼


재귀 함수 활용 : 피보나치 수열

profile
진주의 코딩일기

0개의 댓글

관련 채용 정보