재귀는 간단하게 설명

재귀는 처음에는 얻지 못하는 것 중 하나입니다.

간단한 개념처럼 보이지만 결국에는 더 혼란스러워집니다.

걱정마세요, 당신은 바보가 아닙니다. 처음부터 혼란스러운 주제입니다.

더 이상 고민하지 않고 여기에 주제에 대한 나의 견해가 있습니다.

재귀란 무엇입니까?



재귀에 대한 오래된 농담이 있습니다.

To understand recursion, you must first understand recursion



이 글을 처음 읽었을 때, 나는 똥을 이해하지 못했기 때문에 마음이 날아갔다. 그러나 이제 누군가가 "재귀가 무엇입니까?"라고 물을 때마다 사실이기 때문에 농담을 인용합니다.

간단히 설명된 재귀는 문제를 분할 정복(Divide and Conquer)이라고도 하는 더 작은 문제로 분해하여 문제를 해결하는 방법입니다.



시나리오를 상상해 봅시다:

문제: 피자를 통째로 주문했는데 다 먹고 싶은데 피자가 한 번에 먹기에는 너무 큽니다.

해결책: 피자를 조각으로 나눈 다음 조각을 한 조각씩 먹을 수 있습니다.

이것은 재귀의 매우 추상적인 예이지만 핵심 재귀는 분할 및 정복을 사용하여 문제를 해결하는 방법이기 때문에 분할 및 정복의 개념을 이해하기를 바랍니다.

예시



기초 작업을 배치해 보겠습니다.

문제: 숫자를 받아 카운트다운하는 함수를 원합니다.

샘플 입력: 5

샘플 출력:

5
4
3
2
1



이것은 루프와 권리를 사용하여 간단하게 수행할 수 있다고 말할 수 있지만 이 게시물의 맥락에서 이것은 재귀를 보여주는 좋은 예입니다.

function countDownFrom(number){
    if(number === 0){
     return; // base case
    }
    console.log(number)
    countDownNumber(number - 1); // recursive case 
}


모든 재귀 함수가 가져야 하는 것을 분석해 보겠습니다.

기본 사례: 기능을 중지하는 조건입니다. 기능이 없으면 기능이 끝없이 계속됩니다.

재귀 사례: 다른 매개변수를 사용하여 함수를 다시 호출하는 경우입니다.

이제 우리는 재귀에 새로운 정의를 줄 수 있습니다:

Recursion is when a function calls itself, until it doesn’t.



결론



나는 이것이 끝날 때까지 재귀에 대해 덜 혼란스러워하기를 바랍니다. 질문이 있으시면 댓글에 남겨주세요.

좋은 웹페이지 즐겨찾기