코드스테이츠 9주차[FE 41기]

이동국·2022년 10월 22일
0

이제 섹션2가 끝나고 섹션3가 시작 되었다.
섹션3부터는 데일리 코딩 난이도가 올라간다고 하셨다. 그리고 섹션2보다는 시간도 꽤 있을거라고 하셨으니 그 사이에 틈틈히 복습을 해야겠다.

section3

Unit1

이번 유닛의 학습목표는 재귀를 학습하고 연습하면서, 하나의 문제를 해결하기 위해 다양한 방식으로 생각하는 능력을 기르는 것이다.

재귀

재귀란?

원래의 자리로 되돌아가거나 되돌아온다는 의미이다.

예를 들어보자

function recursion () {
  console.log("재")
  console.log("귀!")
  recursion()
}

이렇게 함수를 만들고 개발자 도두 콘솔에 넣어보면 어떻게 될까?

바로 이처럼 자기 자신을 끝없이 호출하면서 같은 코드가 계속해서 실행되는 것을 볼 수 있다. 이것을 잘 활용하면 반복적인 작업을 해야하는 문제를 좀 더 간결한 코드로 풀어낼 수 있을 것이다.

재귀의 활용

문제를 풀며 이해를 해보자.

  • 문제: 자연수를 입력받고, 입력받은 수부터 1까지의 자연수를 모두 곱한 값을 리턴하는 재귀 함수 fac 을 작성해라.
  1. 먼저 n이 1일때는 1밖에 안나오니 조건을 따로 만들어 준다.

  2. 그리고 앞서 배운 재귀를 활용하여 2이상의 자연수가 오면 n * fac(n-1)이처럼 자기 자신을 호출하여 값을 리턴할 수 있다.

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

0개의 댓글