알고리즘 Divide and Conquer
Divide and Conquer
분할정복
재귀적 기술로 단순한 알고리즘이 아니라 문제를 풀기위한 방법론에 가깝다. 문제에 접근하는 사고 방식을 제시하며, 단계는 아래와 같다.
- 단계
- 기본 단계를 해결한다. 가능한 간단한 문제여야 한다.
- 문제가 기본 단계가 될 때까지 나누거나 작게 만든다.
- 예시
## 배열 내 숫자들의 합계를 구하려 한다.
#재귀 함수를 사용할 시 -
'''
1. 기본단계를 찾는다.
가장 간단한 배열로 원소개수가 0개이거나 1개인 배열을 보통 기본으로 한다.
2. 재귀함수를 호출할 때마다 호출 대상이 되는 배열의 크기가 점점 감소하도록 한다.
리스트를 받는다 > 리스트가 비어 있으면 0을 반환한다.
> 그렇지 않다면 총합은 리스트의 첫 번째 숫자와 나머지 리스트의 총합을 더한 값이 된다.
**재귀에서는 상태를 추척한다는 점을 염두한다. (부분적으로 실행된 함수 호출의 상태를 모두 저장)
'''
reference
도서 : Hello Coding 그림으로 개념을 이해하는 알고리즘