# divide and conquer
def consecutive_sum(start, end):
# 여기에 코드를 작성하세요
sum = 0
for start in range(end+1):
sum += start
return sum
# 테스트 코드
print(consecutive_sum(1, 10))
print(consecutive_sum(1, 100))
print(consecutive_sum(1, 253))
print(consecutive_sum(1, 388))
# 분할정복 코드
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)
'Algorithm > 코딩테스트 스터디' 카테고리의 다른 글
partition 함수 구현하기 (0) | 2023.11.03 |
---|---|
merge 함수 작성 (0) | 2023.11.03 |
출근하는 방법 I (0) | 2023.08.04 |
삼송전자 주식 분석 (0) | 2023.08.01 |
투자 귀재 규식이 III (0) | 2023.08.01 |
# divide and conquer
def consecutive_sum(start, end):
# 여기에 코드를 작성하세요
sum = 0
for start in range(end+1):
sum += start
return sum
# 테스트 코드
print(consecutive_sum(1, 10))
print(consecutive_sum(1, 100))
print(consecutive_sum(1, 253))
print(consecutive_sum(1, 388))
# 분할정복 코드
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)
'Algorithm > 코딩테스트 스터디' 카테고리의 다른 글
partition 함수 구현하기 (0) | 2023.11.03 |
---|---|
merge 함수 작성 (0) | 2023.11.03 |
출근하는 방법 I (0) | 2023.08.04 |
삼송전자 주식 분석 (0) | 2023.08.01 |
투자 귀재 규식이 III (0) | 2023.08.01 |