재귀 함수
+) 재귀 함수 호출 시 메모리가 할당되는 방식
더보기
main 메서드에서 함수가 호출될 때, 메모리는 stack area에 할당된다.
재귀 함수가 호출될 때, 호출된 함수의 메모리는 top of memory 할당된 재귀 함수를 호출한 /
함수 안에서 선언된 지역 변수는 재귀 함수가 호출될 때마다 다른 복사본으로 생성된다.
재귀 함수 호출 중 base case를 만나 종료될 때, 호출된 재귀 함수는 맨 처음 자신을 호출한 함수에 값을 return한다. 이때 메모리는 할당 해제되고 프로세스는 계속된다.
ref. + e.g.
+) 재귀 함수의 호출 위치
더보기
사실 이걸 찾으려고 찾은 게 아닌데 그렇게 됐다 에휴
결론
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 |