재귀함수( Recursive Function )

Study/Etc 2018. 11. 7. 06:05 Posted by meanoflife
반응형

재귀함수( Recursive Function )



자기 스스로를 호출하는 함수를 재귀함수라고 합니다.

같은 로직을 특정 값만 바뀌면서 반복해서 수행해야 하는 경우가 있습니다.


이때 반복되는 로직만으로 함수를 구성하여, 스스로를 반복하며 수행할 수 있습니다.

막상 말로 표현하려고 하니 어렵네요.


예문으로 설명을 드리겠습니다.

Query Parsing을 진행하면서 사용한 재귀함수 입니다.





findStr( )이라는 함수를 이용하여, 문자열에서 찾는 문자열의 위치값을 모두 찾는 재귀함수 입니다.


indexOf를 이용하여 문자열의 위치를 찾는데, n개의 문자가 존재할 수 있으므로, 반복해서 모든 위치를 검색해 봐야 합니다.

indexOf의 두번째 인자가, 찾기 시작할 위치값이므로, 찾은 문자열의 다음 index값을 인자로 줘야 합니다.

( 그렇지 않으면, 계속 같은 문자열만 반복해서 찾음 - 무한 루프 )


문자열에서 찾는 문자열을 찾게 되면, "찾은 문자열"을 두번째 인자로 사용하여 그 다움부터 찾습니다.


재귀함수의 경우 Stack구조를 사용합니다. 

Stack은 FILO( First In Last Out )으로 처리되는 방식입니다.


재귀함수의 경우 무한루프에 빠질 수 있으니, 주의해서 사용하시기 바랍니다.


끝.

반응형