Algorithm(알고리즘)/Divide and Conquer
1) 1부터 nn까지 더하기 (divide and conquer)
반응형
1. 1부터 nn까지 더하는 예시
절반씩 계속 나눠서 결과를 더하는 방법
def consecutive_sum(start, end):
# base case
if end == start:
return start
# 부분 문제를 반으로 나눠주기 위해서 문제의 정중앙을 정의한다 (Divide)
mid = (start + end) // 2
# 각 부분 문제를 재귀적으로 풀고(Conquer), 부분 문제의 답을 서로 더한다(Combine).
return consecutive_sum(start, mid) + consecutive_sum(mid + 1, end)
# 테스트
print(consecutive_sum(1, 10))
print(consecutive_sum(1, 100))
print(consecutive_sum(1, 253))
print(consecutive_sum(1, 388))
결과 : 55 5050 32131 75466
반응형
'Algorithm(알고리즘) > Divide and Conquer' 카테고리의 다른 글
Divide and Conquer 문제 푸는 법 (0) | 2021.05.16 |
---|---|
3) 합병 함수를 Divide and Conquer 방식으로 작성 (0) | 2021.05.14 |
2) 합병 정렬 알고리즘 merge함수 (0) | 2021.05.14 |
댓글