728x90
반응형
실습 설명
Divide and Conquer를 이용해서 1부터 n까지 더하는 과정을 코드로 한 번 구현해 봅시다.
우리가 작성할 함수 consecutive_sum은 두 개의 정수 인풋 start와 end를 받고, start부터 end까지의 합을 리턴합니다. end는 start보다 크다고 가정합니다.
실습 결과
def consecutive_sum(start, end):
# base case
if start == end:
return start
# 분할
mid = (start + end) // 2
# 정복
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
75466728x90
반응형
'백엔드개발 > 알고리즘' 카테고리의 다른 글
| [파이썬] 합병정렬 (2) merge_sort 함수 - 분할정복 ★ (0) | 2023.09.16 |
|---|---|
| [파이썬] 합병정렬 (1) merge 함수 - 분할정복 ★ (0) | 2023.09.16 |
| [파이썬] 런던 폭우 - 브루트 포스 (0) | 2023.09.16 |
| [파이썬] 가장 가까운 매장 찾기 - 브루트 포스 ★ (1) | 2023.09.16 |
| [파이썬] 카드 뭉치 최대 조합 - 브루트포스 ★ (1) | 2023.09.16 |