재귀 함수 (2) - 재귀 함수의 종료 조건

2023. 7. 30. 15:29· Algorithm

앞의 게시물에서도 이야기 했듯이 재귀 함수에는 반드시 적절한 종료 조건이 존재해야 한다. 따라서 문제를 해석하고 알고리즘을 구현할 때 언제 어떻게 재귀 호출을 종료하고 return 해야 하는지를 생각해야 할 것이다. 종료 조건을 추가한 재귀 함수에 대한 예시 소스코드이다.

def recursive(i):
    if i == 100 :
        return
    print(i,"번째 재귀함수가 ",i+1,"번째 재귀함수 호출")
    recursive(i+1)
    print(i,"번째 재귀함수 종료")

recursive(1)

이전의 예시와 유사하지만 recursive 함수에서 ' i '라는 매개변수가 존재한다. 먼저 가장 마지막 줄인 recursive(1)의 구문으로 재귀 함수가 매개변수 i에 1의 값을 갖고 호출된다. if 조건문에서 i가 100인지를 검사하고 "1번째 재귀함수가 2번째 재귀함수 호출" 이라는 메시지를 출력한다. 이후 recursive(2)가 호출 될 것이다. 이러한 과정이 i가 100일때까지 반복되며 i 가 100인 경우에는 리턴(return)하게 된다. 리턴 이후에는 호출 구문의 아랫줄이 실행되는데 이는 "99번째 재귀함수 종료" 라는 메시지 일 것이다. 이후 99부터 1까지 종료 메시지를 출력하고 프로그램을 종료한다.

이를 통해 확인할 수 있듯이 재귀 함수는 스택의 자료구조를 사용한다. 즉, LIFO의 방식을 보인다는 것이다. 왜냐하면 함수를 계속 호출했을 때 가장 마지막에 호출한 함수가 먼저 수행을 끝내고 리턴해야 그 이전의 함수가 종료되기 때문이다.

따라서 스택을 활용해야 하는 알고리즘은 재귀 함수를 통해서 쉽게 구현할 수 있는 것이다.

 

 

저작자표시 (새창열림)

'Algorithm' 카테고리의 다른 글

자료구조 (Data Structure) (4) - 그래프 (Graph) 란?  (0) 2023.07.30
재귀 함수 (3) - 재귀 함수의 대표적인 예 : 팩토리얼 (Factorial)  (0) 2023.07.30
재귀 함수 (1) - 재귀 함수 (Recursive Function) 란?  (0) 2023.07.30
자료구조 (Data Structure) (3) - 큐 (Queue) 란?  (0) 2023.07.30
자료구조 (Data Structure) (2) - 스택 (Stack) 이란?  (0) 2023.07.30
'Algorithm' 카테고리의 다른 글
  • 자료구조 (Data Structure) (4) - 그래프 (Graph) 란?
  • 재귀 함수 (3) - 재귀 함수의 대표적인 예 : 팩토리얼 (Factorial)
  • 재귀 함수 (1) - 재귀 함수 (Recursive Function) 란?
  • 자료구조 (Data Structure) (3) - 큐 (Queue) 란?
공대생안씨
공대생안씨
전자공학과 학부생의 코딩 일기
티스토리
|
로그인
공대생안씨
공대생의 코딩 일기
공대생안씨
글쓰기
|
관리
전체
오늘
어제
  • All Categories (153)
    • Spring Boot (46)
      • JPA (7)
      • Lombok (2)
    • Java (21)
    • DevOps (3)
      • CI,CD (8)
      • Monitoring (2)
    • Database (7)
      • MySQL (5)
      • MongoDB (1)
      • H2 (1)
    • Trouble Shooting (5)
    • FE (4)
    • IntelliJ (3)
    • Git (3)
    • Algorithm (41)

블로그 메뉴

  • 홈
  • 태그
  • Github

공지사항

인기 글

hELLO · Designed By 정상우.v4.2.2
공대생안씨
재귀 함수 (2) - 재귀 함수의 종료 조건
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.