평균값 계산하기
우리 모두 반복문으로 평균값을 계산하는 방법은 잘 알고 있어요:
def average(nums):
result = 0
for num in nums:
result += num
return result/len(nums)
재귀적으로 푸는 방법을 제시해 보시겠어요? 새 입력값이 주어질 때 평균을 갱신하는 데 유용한 공식은 다음과 같아요:
$$ \bar{x} \leftarrow \frac{x_i + (n-1)\bar{x}}{n} $$
여기서 $\bar x$는 평균값, $x_i$는 평균을 갱신하기 위해 새로 제공된 값이며, $n$은 재귀 호출 횟수(함수에 대한 최초 호출은 제외)를 의미해요.
이 연습은 강의의 일부입니다
Python으로 코딩 인터뷰 문제 연습하기
연습 안내
- 알고리즘의 기본 사례(base case)를 제시하세요.
- 평균값을 갱신하기 위한 재귀 호출을 정의하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Calculate an average value of the sequence of numbers
def average(nums):
# Base case
if len(nums) == ____:
return ____[____]
# Recursive call
n = len(nums)
return (____ + ____ * ____) / ____
# Testing the function
print(average([1, 2, 3, 4, 5]))