승쨩개발공부

[AG] 재귀함수 탐색 순서 (경우의 수) 본문

Algorithm & Data Structure

[AG] 재귀함수 탐색 순서 (경우의 수)

Unknowns 2024. 12. 24. 01:02

재귀함수를 탐색하다 보면 밑 그림과 같이 무수히 많은 함수중 어떤 함수를 실행하고 있는지 따로 체크를 하지 않으면 탐색하기가 어렵다.

특히 디버깅 하거나 할떄 잊어버리기 쉽상이다.

그래서 함수에 들어가기 전에 해당 함수의 위치를 배열에 기록해두려 한다.

위 사진은 Depth는 2이고 Branch는 3이다.

코드과정

 

 

출력 결과

어? 출력결과를 잘 보면 A,B,C가 카드로 치면 3장이 있다고 치고

A,B,C로 카드를 2개를 뽑는 모든 경우에 수가 생긴걸 볼수 있다!

 

그렇다면 카드 3장이 있고 3장을 모두 뽑는다면 그 경우의 수도 출력할수있지않을까?

된다!

즉 깊이는 뽑는갯수

넓이는 카드의 종류라고 보면 될것같다.

 

 

연습문제1

위와 같은 트리모양으로 재귀호출 프로그램을 만드려 합니다.

Level 3에 도착했을떄 입력 받은 PATH가 몇번쨰로 만들어지는지 출력 해주세요.

ex) 

AAA => 1번쨰

 

입력 예제

AAD

 

출력 결과

4번쨰

 

풀이 과정

Death = 3이고 Branch = 4이다

즉 깊이는 3이고 재귀호출을 4번해야한다는 뜻

Level이 3일떄 num을 1씩 증가시켜주고 거기서 조건문으로 출력하면 될것같다.

 

 

배열 + String

 

String

 

출력결과

'Algorithm & Data Structure' 카테고리의 다른 글

[AG] 재귀함수 깊이와 너비(DFS)  (1) 2024.12.24
[AG] 재귀함수  (0) 2024.12.23