1. 순차적 진행

2. 실시간 값 변화

3. 종료 조건

 

*재귀함수의 이해

입력된 파라미터를 포함해 함수 외부에서 정의된 변수는 전역 변수로써 모든 재귀 실행마다 스코프가 공유 되고 실시간 재귀 실행마다 해당 값이 변한다.

재귀 실행은 비동기로 진행되는 것이 아니다. 처음부터 끝까지 모두 순차적으로 진행된다. for문과 다른 점이 없다.
(잘못 알고 있었던 점.. 실행이 비동기로 된다고 생각 했던 것 같고 실행 흐름이 매우 어렵게 느껴졌었음)

즉 재귀함수는 순차적 진행 + 실시간 값 변화 + 종료 조건 으로 구성되어 있다.

 

 

함수는 단순 줄에서 줄로 이동하는 것이다. 중첩 관계가 형성 되는 것이 아니다.

재귀함수는 for문과 다를 점이 없다. 줄 이동에 따라 코드가 계속 읽히는 것이다.

return은 단순히 해당 함수의 실행을 완전히 종료하고 함수 실행 다음코드로 넘어가는 것이다.

모든 경우의 수를 다 들리게 해야해서 이 DFS 방법이 필요한 것이다. (단순 반복문으로 하면.. 힘들꺼임)

리턴되어 다시 전으로 돌아왔을때, 새로운 뿌리로써 끝까지 들르는 것이 중요하다.