반응형
알고리즘 문제를 풀면서 재귀 호출 실행 과정을 한 번 자세히 다뤄보는게 좋을 것 같다는 생각이 들었다.
과정
01 메서드 안에 다시 메서드를 호출할 경우 재귀 호출이기 때문에 메서드가 호출되면서 현재 실행 중인 함수의 상태를 스택에 저장하고 새로운 함수 호출이 시작된다.
02 새로운 함수의 실행이 끝나면 return을 통해 스택에서 이전 함수의 상태를 꺼내어 계속 진행하게 된다.
예시
static void RecursiveExample(int i)
{
if (i == 3)
{
Console.WriteLine($"i == 3 : {i}");
return; // 이전 호출로 되돌아 가기
}
Console.WriteLine($"Before recursive call: {i}");
RecursiveExample(i + 1);
Console.WriteLine($"After recursive call: {i}");
}
결과
반응형
'코딩테스트 준비 > 자료구조 & 알고리즘' 카테고리의 다른 글
C# - 백준 코드 처리 속도(실행 시간) 측정 방법 +) Stopwatch 프로퍼티 및 메서드 설명 (0) | 2024.03.17 |
---|---|
C# - 우선순위 큐(Priority Queue)와 힙(Heap) (0) | 2024.03.16 |
C# - DFS/BFS 둘 중 어느것을 사용해서 문제를 풀어야 할까? (0) | 2023.12.16 |
C# - Where와 Count를 사용해서 배열에 특정 요소의 개수 구하기 (0) | 2023.12.15 |
C# - 완전 탐색(Brute force, 백트래킹,순열 조합,비트 마스크) (1) | 2023.12.08 |
댓글