본문 바로가기
IT/algorithm

[Python] 알고리즘 개념9 퀴즈 - 재귀 함수의 스택 메커니즘

by Echinacea 2025. 2. 23.
반응형

 

 

📌 퀴즈 개요

다음 퀴즈를 통해 재귀 함수(Recursion)와 스택(Stack) 메커니즘 개념을 정확히 이해하고 있는지 확인해 보세요! 😊


 

 

🧩 1. 개념 이해 문제

 

(1) 재귀 함수(Recursion)의 기본 종료 조건(Base Case)에 대한 설명으로 옳지 않은 것은?

  1. 재귀 함수가 무한히 실행되지 않도록 도와준다.
  2. 기본 종료 조건이 없으면 스택 오버플로우(Stack Overflow)가 발생할 수 있다.
  3. 기본 종료 조건이 없는 재귀 함수는 항상 None을 반환한다.
  4. 기본 종료 조건을 만나면 더 이상 재귀 호출을 수행하지 않는다.

 

(2) 다음 중 재귀 함수와 관련이 가장 적은 개념은?

  1. 스택(Stack)
  2. 후입선출(LIFO)
  3. 큐(Queue)
  4. 스택 오버플로우(Stack Overflow)

 

 

🧩 2. 실전 문제

 

(3) 다음 코드의 실행 결과는?

def recursive_sum(n):
    if n == 0:
        return 0
    return n + recursive_sum(n - 1)

print(recursive_sum(3))
  1. 3
  2. 6
  3. 10
  4. 0

 

(4) 다음 코드가 실행될 경우 발생할 수 있는 문제는?

def infinite_recursion(n):
    print(n)
    infinite_recursion(n + 1)

infinite_recursion(1)
  1. 무한 루프 발생
  2. 스택 오버플로우 발생
  3. 프로그램 정상 종료
  4. 1만 번 반복 후 종료

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

🏆 정답 및 해설

(1) 정답: 3
✅ 기본 종료 조건이 없는 재귀 함수는 무한히 실행될 수 있으며, None을 반환하는 것이 아니라 **스택 오버플로우(Stack Overflow)**를 발생시킬 수 있습니다.

(2) 정답: 3
✅ 큐(Queue)는 선입선출(FIFO) 방식이며, 재귀 함수는 스택(Stack) 구조를 사용하여 후입선출(LIFO) 방식으로 동작합니다.

(3) 정답: 2
✅ recursive_sum(3) 함수는 3 + 2 + 1 + 0 = 6을 반환합니다.

(4) 정답: 2
✅ 기본 종료 조건 없이 자기 자신을 계속 호출하면, 호출이 스택에 쌓이면서 **스택 오버플로우(Stack Overflow)**가 발생하게 됩니다.


 

반응형

댓글