재귀 함수
java/ 재귀 함수 Recursive Function
재귀 Recursion 함수가 자기 자신을 호출하는 과정 e.g. 자연수 n을 입력 받아 1부터 n까지의 합을 구하기 1. for문을 사용 지금껏 사용해 온 for문으로 변수 sum을 선언해주고, 1부터 시작해 입력 받은 n
romcanrom.tistory.com
+) 재귀 함수 호출 시 메모리가 할당되는 방식
main 메서드에서 함수가 호출될 때, 메모리는 stack area에 할당된다.
재귀 함수가 호출될 때, 호출된 함수의 메모리는 top of memory 할당된 재귀 함수를 호출한 /
함수 안에서 선언된 지역 변수는 재귀 함수가 호출될 때마다 다른 복사본으로 생성된다.
재귀 함수 호출 중 base case를 만나 종료될 때, 호출된 재귀 함수는 맨 처음 자신을 호출한 함수에 값을 return한다. 이때 메모리는 할당 해제되고 프로세스는 계속된다.
ref. + e.g.
Recursion in Java - GeeksforGeeks
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
www.geeksforgeeks.org
+) 재귀 함수의 호출 위치
The difference between head & tail recursion
I'm trying to get the difference between these 2 recursive strategies. The definition I was told is the following: Tail Recursion: A call is tail-recursive if nothing has to be done after the call
stackoverflow.com
Head recursion Vs Tail recursion
What is Recursion? A recursion is a function which calls itself directly or indirectly ove...
dev.to
사실 이걸 찾으려고 찾은 게 아닌데 그렇게 됐다 에휴
결론
head 위치에서 recursion 사용 이점 X
일반적으로 사용하는 재귀는 다 tail recursion
- 재귀 함수 호출 후 코드문이 없는 경우
- 일반적으로 함수 끝에 위치
- 반복문으로 쉽게 대치
- 재귀 호출 전에 처리가 발생
- 다음 재귀 함수를 호출하기 전에 모든 실행문을 실행
return문과 재귀 함수
🐑 Daily 회고
1. 역대급 난이도 갱신
- 어쩜 이렇게 날로달로 갱신이 되나요.....? 아무리 제가 수못찐이었다지만..................?
2. Arrays.copoyOfRange(), System.arraycopy()
- 기억력 + 응용력 어떡하지?
총평 ⭐⭐⭐
아고라에 질문했던 거 그대로 다시 보고 앉아 있기 재밌네요...... 새롭고 낯설고 헷갈리고 짜릿하네요...........
'diary > codestates (be39)' 카테고리의 다른 글
06/03/22 Data Structure + Algorithm 회고 (0) | 2022.06.03 |
---|---|
05/26/22 daily 회고 (stack+queue) (0) | 2022.05.27 |
05/23/22 daily 회고) 기술 면접 준비 + 개발 관련 도서 선정 (0) | 2022.05.24 |
05/23/22 코드스테이츠 Section 1을 마치면서 (0) | 2022.05.23 |
05/19-20/22 스트림 Stream 기본 개념 (0) | 2022.05.23 |