-
[C] boostcamp 코딩테스트 유형 Q.5언어/C 2024. 5. 30. 12:19
문제 먼저 풀어보세요.
우선, 재귀함수란 무엇일 까?
재귀 함수(Recursion Function)는 함수가 자기 자신을 호출하는 것을 말합니다.
즉, 함수가 자기 자신을 호출하는 행위를 포함하는 함수를 재귀 함수라고 합니다.
재귀 함수는 일반적으로 다음과 같은 구조를 가집니다:
- 기본 사례(Base Case): 재귀 함수가 자기 자신을 호출하지 않고 종료되는 조건을 나타냅니다. 이 조건이 충족되면 재귀 호출이 멈추고 함수가 종료됩니다.
- 재귀 사례(Recursive Case): 재귀 함수가 자기 자신을 호출하는 부분입니다. 이 부분에서 함수가 자기 자신을 호출하여 문제를 작은 조각으로 분할하고 해결합니다.
void draw1 (int h) { if(h == 0) { return; } draw1( h-1 ); for (int i = 0; i < h; i++) { printf("*"); } printf("\n"); } void draw2(int h) { for(int o = 0; o <h; o++) { for (int i = 0; i < o; i++) { printf("*"); } printf("\n"); } }
- draw1(5)일 때,
- if( h==0)일 때 return; 즉 base case로 종료한다. (그렇지 않으면 무한히 반복하다가... )
- draw1(5) 호출
- draw1(4) 호출
- draw1(3) 호출
- draw1(2) 호출
- draw1(1) 호출
- draw1(0) 호출 후 종료
- draw1(1)로 돌아가서 별표 출력 후 종료
- draw1(2)로 돌아가서 별표 출력 후 종료
- draw1(3)로 돌아가서 별표 출력 후 종료
- draw1(4)로 돌아가서 별표 출력 후 종료
- draw1(5) 종료
- draw2(5)일 때,
- 결국엔 0<= i < 4 이다. 총 4번 반복.
'언어 > C' 카테고리의 다른 글
[C] 포인터 (0) 2024.10.05 [C] 문자열 저장 : 메모리구조 (0) 2024.05.30 [C] boostcamp 코딩테스트 유형 Q.4 (0) 2024.05.30 [C] while문으로 1부터 100구하기, 반복조건 count <101일까? count == 100일까? (0) 2024.05.30