TIL 20-11-19

박한솔·2020년 11월 19일
0

오늘의 느낌

알고리즘이 제일 어려운 줄 알고 재귀함수 정도야 쉽게 할 수 있을 줄 알았다. 그 착각은 어제와 오늘로 족하다고 생각한다. 지금까지 배웠던 반복문, 정의, 배열, 객체를 모두 내 언어처럼 사용하지 못하면 재귀함수는 시작하지도 못했다. 다시 한번 기본이 중요하다는 것을 느끼게 되었다. 앞으로 더 열심히 해야겠다는 오기도 생겼다.
시간이 한달이나 지났다는 것을 느꼈다. 그만큼 정말 이 프로그램을 즐기고 있다는 생각도 들고 더 어려운 과정에서도 적응할 수 있을까 하는 걱정도 조금은 있다. 내일 마지막으로 있을 api 제작에서도 최선을 다하면서 즐겁게 pre 코스를 마치고 싶다.

새로 배운 내용

재귀 함수

하나의 함수에서 자기 자신을 다시 호출하는 함수
지나친 반복문으로 인해 코드가 꼬이는 것을 방지하기 위해 사용된다.

ex) 팩토리얼 (n!)를 재귀함수로 표현하면
function factorial(num){
if (num<=1){
return 1 ==> 종료조건
}
return num * factorial(num-1) ==>재귀조건
}

factorial(5) =
5 x factorial(4) =
5 x 4 x factrial(3) =
5 x 4 x 3 x factorial (2) =
5 x 4 x 3 x 2 x 1(num가 1보다 작으므로 종료조건)
= 120

재귀함수는 반드시 종료조건(또는 인수가 나눠지지 않는 한계)가 있어야 한다.
종료조건이 없다면 재귀문 안에서 영원히 반복된다.

profile
치열하게, 하지만 즐겁게

0개의 댓글