211109_개발자 준비하기(38일차) - 재귀함수

주형(Jureamer)·2022년 1월 4일
0
post-custom-banner

오늘 배운 것(끄적끄적)


  • 재귀함수란!? Untitled

ㅋㅋ.. 완벽한 설명이다. 간단히 말하면 함수 안에서 자기 자신을 다시 호출하여 참조하는 방법을 말한다.

이 재귀함수는 대부분의 경우 for, while로 대체가 가능하다. 하지만 반복횟수가 많을 수록 스택 메모리가 커지게 되어 스택 오버 플로가 발생할 수 있다.

Untitled

  • 재귀적으로 사고하기 → 재귀함수를 이용하여 문제를 풀기 위해선 재귀적으로 사고하는 방법이 필요하다. 보기만해선 안되고 직접 작성해보면서 감을 익혀야한다
    • 재귀 함수의 입력값과 출력값 정의하기 → arrSum(함수)인 경우 : number ⇒ number (출력값)
    • 문제를 쪼개고 경우의 수 나누기 → arrSum() 입력값이 배열([]) 일 경우와, 그렇지 않은 경우와 같이 문제의 순서와 크기를 구분한다.
    • 단순한 문제 해결하기 → 가장 해결하기 쉬운 문제부터 해결한다. 이것을 재귀의 기초(base case)라고 하며, 이것은 재귀의 탈출 조건을 구성한다.
    • 복잡한 문제 해결하기 → 남아있는 복잡한 문제를 해결한다.(재귀적 표현 사용)
    • 코드 구현하기

느낀점


factorial으로만 어렴풋이 알고있었던 재귀함수에 대해서 공부하고 실습해봤다. 인셉션의 꿈 속의 꿈이나 하노이 탑처럼 많은 비유적인 표현들이 많은 재귀함수를 배우면서 이건 for나 while로 하면 간단할 것 같은데 하면서

재귀함수를 사용하려니까 막막한 부분이 꽤 있었다. 장점도 깔끔하게 작성이 가능하고 단점은 속도가 느리다는 것인데 실사용에선 얼마나 사용될 지 가늠이 안되었다.

그래도 이 재귀함수를 배우게 되면 나중에 복잡한 코드들을 작성할 때(?) 분명 도움이 될 것 같다.

내일 배울 것


  • StringiFy JSON
  • Tree UI
profile
작게라도 꾸준히 성장하는게 목표입니다.
post-custom-banner

0개의 댓글