TIL 작성 2021 11/9

Jelkov Ahn·2021년 11월 9일
0

TIL

목록 보기
24/29
post-thumbnail

재귀함수란 무엇인가 ?

작은문제를 해결함으로써 주어진문제를 해결 하는것!

  • 재귀: 사고방식, 문제를 가장 작게 쪼개어서 단순하게 문제를 해결하는 방식
  • 재귀를 사용하는 함수 => 재귀 함수 => 자기자신을 반복하여 호출하는 함수

예제
수(num)를 입력받아 1부터 num까지의 합을 리턴해야 합니다.

function sumTo(num) { 
  if (num === 0){
    return 0
  }else{
    return num+sumTo(num-1)
  }
  // TODO: 여기에 코드를 작성합니다.
  // 별도의 최적화 기법(memoization)은 금지됩니다.
}
1. 재귀함수의 입력값과 출력값을 정의하기
// 코딩문제를 풀기 전에는 늘 입력값과 출력값이 무엇인지 먼저 확인하고 시작
// 큰 그림 그리기의 시작
// sumTo: num =>num

2. 문제를 쪼개고 경우의 수를 나누기
// " 하나의 문제 풀이 방식으로 모든 문제를 해결할수 있나요?"
// " 문제 해결 구조는 동일하지만 더 작은 경우를 먼저 해결함으로써 그문제를 해결하는 방법"


// " 1부터 5까지의 합을 구하려면, 먼저 1부터 4까지의 합을 구해야 한다."
// 1+ 2+ 3+ 4+ 5 === sumTo(5)
// sumTo(4) + 5 === sumTo(5)
// sumTo(n-1) + n === sumTo(n)

3. 단순한 문제 해결하기
// sumTo(1) === 1 -> base case

4. 복잡한 문제 해결하기
// sumTo(n-1) + n === sumTo(n) -> recursive case(재귀)

5. 코드 구현하기
  • 디버거로 확인
debugger;
sumTo(5);
  • 재귀함수의 도식화

profile
끝까지 ... 가면 된다.

0개의 댓글