학습 주제
재귀 함수의 이해
재귀적 사고 연습
새롭게 배운 내용
2022.07.21 - [Etc/Algorithm] - 재귀
//더 이상 쪼갤 수 없는 경우
//작은 단위로 쪼갤 수 있는 경우
int head
int[] tail
보강할 내용
인텔리제이에서 피보나치 수열(재귀) 코드 작성해 보고, 매개변수에 큰 수 넣어 보기
→ 속도 저하 문제를 어떻게 해결할 수 있을까?
회고
메서드 안에서 또 같은 메서드를 호출한다니! 처음에는 마트료시카 같은 구조가 어지럽게 느껴졌다.
그런데 알고리즘 공부를 시작하면서 느낀 건데 재귀 역시 응용하는 패턴이 있다.
더 이상 쪼갤 수 없는 경우를 생각해서 정의하고, 작은 단위로 쪼갤 수 있는 경우를 생각해서 동일한 구조를 반복한다.
재귀를 사용하면 많은 메서드가 호출되는 구조가 되니까 비효율적인 면이 많다.
그래서 현업에서는 거의 사용하지 않지만 분할 정복과 탐색 등의 알고리즘 문제를 풀 때 필요한 경우가 있다고 한다.
알고리즘에 대해 잘 모를 때는 그런 사고가 참 어렵다고 생각했는데, 같은 패턴의 문제를 계속 반복해서 푸니까 재미있다!!!
★★★★★
'Etc > BootCamp : TIL' 카테고리의 다른 글
[Day 33] [자료구조 / 알고리즘] Stack / Queue (0) | 2022.07.25 |
---|---|
[Day 30] [자료구조 / 알고리즘] 재귀 - StringifyJSON (0) | 2022.07.22 |
[Day 28] 기술 면접 실습 (0) | 2022.07.19 |
[Day 27] Java - 심화(Effective) Ⅱ (0) | 2022.07.19 |
[Day 26] Java - 심화(Effective) (0) | 2022.07.18 |
댓글