
반복문 vs 재귀
2022. 10. 22. 23:37
EEddy's
반복문과 재귀함수 프로그램은 반복되는 작업을 수행하도록 설계된다. 따라서 반복을 구현하는 로직은 필수적이고 프로그래밍 언어마다 for, while 같은 기본적인 반복 제어문을 지원한다. 반복되는 작업은 기본 제어문을 통해서 뿐만 아니라 재귀함수로도 구현할 수 있다. 재귀함수는 복잡한 문제를 단순화해서 풀 수 있는 알고리즘으로 많이 알려져 있는데, 원래 정의는 하나의 함수가 자신을 다시 호출하여 반복되는 작업을 수행하는 함수를 말한다. 반복문과 재귀함수는 서로 반복을 수행하는 구조는 다르지만, 재귀 함수로 작성 할 수 있다면 반복문으로도 작성할 수 있고 그 역도 성립한다. 🤔 그렇다면 어떤 방식이 더 좋을까? 아래 코드는 자동차 경주게임을 구현한 일부 예시 코드다. 사용자로부터의 입력이 올바른지 검증하고 ..
재귀 알고리즘
2021. 1. 22. 18:49
DevLog/Algorithm
재귀(Recusion) 알고리즘이란? 재귀 함수는 자기 자신을 참조하는 함수입니다. 원래의 문제를 동일한 유형의 하위 문제로 나누고 하위문제를 해결한 다음 결과와 결합합니다. 이러한 알고리즘을 분할 정복법이라합니다. 또 하위 결과를 저장하여 조회하는 알고리즘이 추가되면 동적 프로그래밍이라고 부릅니다. 이러한 재귀함수는 다음과 같은 구조를 가져야 합니다. Base Case : 재귀함수의 종료 조건으로 더 이상 문제를 쪼갤수 없을 때, 자기자신을 호출하지 않고 답이 나올 때 Recusion Case : 복잡한 입력을 더 간단한 입력으로 분류하여 자기자신을 호출 재귀의 활용 예시 1. 계수(factorial) 구하기 다음은 factorial 함수는 n!을 구합니다. int factorial(int n) { /..