← 질문 목록
#161깊이 0

재귀 호출 대신 반복문을 써야 하는 순간은 언제인가?

자료구조 · 알고리즘기초메모리

호출 깊이가 깊어져 스택 오버플로우가 발생할 위험이 있거나 극단의 성능과 메모리 효율이 필요할 때다.

방식스택 메모리 특성
재귀 호출매 호출마다 스택 프레임 생성 (메모리 오버헤드)
반복문동일 스택 프레임 안에서 변수 업데이트 (메모리 고정)

위 구조처럼 재귀는 함수를 부를 때마다 매개변수, 지역 변수, 복귀 주소를 스택 메모리에 쌓는다. 가독성은 높지만 오버헤드가 발생한다.

호출 횟수가 입력 크기에 비례해 커지면 스택 영역 한도를 넘겨 프로그램이 종료될 수 있다. 꼬리 재귀 최적화가 없고 호출 깊이가 스택 한도를 넘길 수 있으면 반복문으로 바꾼다. 깊이가 얕으면 그대로 두는 편이 읽기 좋다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

재귀 호출 대신 반복문을 써야 하는 순간은 언제인가?