재규어 방식 사고

야 나 개 ·2021년 11월 9일
0

개발자가 되는길에 재규어를 만났다 으악 무서부ㅜ

하지만 괜찮다 사람은 생각하는 동물이니까.

생각하자 어떻게 재귀함수를 뛰어 넘을지

어떤 함수가 스스로를 호출 하는것 !!!

recursion 재귀 (반복)

지난번에 반복문도 겨우 이해 했는데... 재규어를 만났다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

재귀는 이럴때 써야함

  1. 주어진 문제를 비슷한 구조의 더 작은 문제로 나눌 수 있는 경우
  2. 중첩된 반복문이 많거나 반복문의 중첩 횟수(number of loops)를 예측하기 어려운 경우

재귀구현 방법

1. 재귀 함수의 입력값과 출력값 정의하기

당연한 애기지만, !!! 문제를 풀다보면 어지러워서 뭘 입력해야할지를 까먹어 ㅋㅋㅋㅋㅋㅋㅋ 공감? ㅋㅋㅋ

그래서 딱 알고가야됨 함수에 매개변수가 배열이었는지 객체인지 아니면 문자열인지를 딱 알고 해야되고

그리고 출력값도 딱 뭘 출력할지를 딱 알아야함
배열로 출력할지 넘버타입인지!!! ㅇㅋ?

2. 문제를 쪼개고 경우의 수를 나누기

문제를 어떻게 쪼갤지 하나 하나 검색하는 방법을 알아야함

3. 단순한 문제 해결하기

최대한 단순하게 심플하게 풀고 그걸 다시 투입하는 방법으로

4. 복잡한 문제 해결하기

예제

팩토리얼 재귀 함수 표현

1.입력되는거 넘버 타입 / 출력되는거 넘버타입

  1. 문제를 쪼개면 1인 경우에는 1로 출력시켜

  2. 5! => 5*(4!) 이면 되지?

그럼 4!은 함수로 구현되어 있네~~ 이걸 다시 넣자~~~ ㅇㅋ? ㅋㅋㅋ

function fac(num){  /
  if(num === 1){
    return 1;
  return num * fac(num - 1)
}

아 너무 쉽다 재귀적으로 생각하기 ㅋㅋㅋㅋ

문제들을 풀면서 다시 친해져 보자 안녕~~

복잡한 문제들 가지고 한번 뿌셔볼께

profile
야 나도 개발자 될 수 있어

0개의 댓글