[Section 2] 재귀(1)

현이·2023년 3월 14일
0

백엔드 부트캠프 TIL

목록 보기
15/37
post-thumbnail

사진은 루브르 박물관, "나폴레옹의 대관식" - 제일 큰 그림이라고 했던가? 여튼 지나갈때마다 넋놓고 보게되는 그림... 드농관의 이 방에는 "민중을 이끄는 자유의 여신", "메두사의 뗏목" 그리고 이 그림이 나란히 있다

재귀 함수.. 개념은 쉽지만 늘 어려운 알고리즘 문제에서 마주치면 이 방법 생각을 못하거나, 어렴풋이 재귀 문제인건 알아도 구현을 못하는데 역시나 연습문제를 풀때도 마지막에 조금이라도 복잡해진 문제를 만나니까 못풀겠더라...
그래도 기본적인 구조는 다 똑같으니까 기억하고 순서대로 설계하는 연습하기!

재귀 함수의 이해

  • 재귀 함수 : 자기 자신을 호출하는 함수

  • 장점
    -코드 간결해짐
    -변수 여러개 사용 안해도 됨

  • 단점
    -코드 흐름 직관적 파악 어려워짐
    -메모리 더 많이 사용
    -컨텍스트 스위칭 비용 발생

  • 사용 조건
    -> 문제를 작은 단위로 쪼갤 수 있는지?
    -> 재귀 호출 종료 시점 존재하는지?!




재귀적 사고 연습하기

  1. 가장 단순한 경우 찾기(극단적으로 단순화!!)
    e.g. 입력값 1 이거나 배열 크기가 1 or 0
  2. 단순화된 경우로 break case 코드 구현 가능
  3. 나머지 경우 찾기
  4. 나머지로 recursion case 코드 구현 가능

끝..

0개의 댓글