본문 바로가기

재귀함수2

리스프(LISP) 재귀 함수 구현해보자 리스트(LISP)로 재귀 함수이제 만들어볼 함수는 리스트의 합을 구하는 재귀 함수이다. 리스트는 재귀 함수와 궁합이 잘 맞는다. 재귀 함수가 작동하는 흐름함수의 이름은 sum-of-list로 하고, 길이가 n인 리스트를 입력으로 받아 그 총합을 반환하는 함수를 작성한다.구체적인 입력 인자로 [1, 2, 3]과 같이 세 개의 값으로 구성된 리스트를 생각해 보자.sum-of-list([1,2,3]) = 1 + sum-of-list[2, 3]이다.위의 식을 일반화하면 다음과 같이 된다. sum-of-list = list의 첫 번째 요소 + sum-of-list(첫 번째 요소를 제외한 리스트)종료 조건은 입력 인자가 빈 리스트일 때 0을 반환하면 된다.해당 내용을 코드로 작성해 보자.(defun sum-of-l.. 2024. 7. 16.
C# 재귀 호출 동작 방식 재귀 호출에 대해 재귀(recursion) 함수란 자신을 호출하는 함수를 말하는데, while이나 for와 같은 순환처럼 재귀 함수도 하나씩 작은 부분을 처리한 결과를 결합해 하나의 복잡한 문제를 해결해 나가는 방법이다. 하지만 for나 while은 작업이 끝날 때까지 반복을 계속하는 반면, 재귀호출은 작업 자체를 잘게 쪼개서 처리한 결과를 결합하는 방법으로 더 큰 문제를 해결한다는 차이가 있다. 반복에 비해 재귀가 더 짧게 구현 가능한 경우가 많기 때문에 함수형 접근 방식에 적합하지만, 설계와 테스트는 더 어려운 편이다. 재귀 호출로 코드를 더 짧게 구현 가능 설계와 테스트 난이도가 올라감 using System; public partial class Program { static void Main(s.. 2024. 3. 29.