본문 바로가기
Memo/BootCamp : TIL

[Day 29] [자료구조 / 알고리즘] 재귀

by 달의 조각 2022. 7. 21.

학습 주제

 

재귀 함수의 이해
재귀적 사고 연습

 


 

새롭게 배운 내용

 

 

2022.07.21 - [Etc/Algorithm] - 재귀

 

재귀

재귀 함수란? 문제를 동일한 구조의 작은 문제로 나누는 것이 가능하고, 작은 문제를 해결하여 전체 문제를 해결하는 방법 장점 1. 여러 개의 반복문을 사용하지 않아서 코드가 간결하고, 수정

cookiee.tistory.com

//더 이상 쪼갤 수 없는 경우

//작은 단위로 쪼갤 수 있는 경우

int head
int[] tail

 

 

보강할 내용

 

인텔리제이에서 피보나치 수열(재귀) 코드 작성해 보고, 매개변수에 큰 수 넣어 보기
→ 속도 저하 문제를 어떻게 해결할 수 있을까?

 

 

 

회고

 

메서드 안에서 또 같은 메서드를 호출한다니! 처음에는 마트료시카 같은 구조가 어지럽게 느껴졌다.
그런데 알고리즘 공부를 시작하면서 느낀 건데 재귀 역시 응용하는 패턴이 있다.

더 이상 쪼갤 수 없는 경우를 생각해서 정의하고, 작은 단위로 쪼갤 수 있는 경우를 생각해서 동일한 구조를 반복한다.

재귀를 사용하면 많은 메서드가 호출되는 구조가 되니까 비효율적인 면이 많다.
그래서 현업에서는 거의 사용하지 않지만 분할 정복과 탐색 등의 알고리즘 문제를 풀 때 필요한 경우가 있다고 한다.

알고리즘에 대해 잘 모를 때는 그런 사고가 참 어렵다고 생각했는데, 같은 패턴의 문제를 계속 반복해서 푸니까 재미있다!!!

 

 

★★★★★

댓글