문제 보기 · Level 1 · 연습문제 · 정답률 88% · 푼 사람 94,954명 (2026-09-30 기준)1
문제
정수 배열 arr의 평균을 돌려준다.
- arr 길이 1~100, 원소 −10,000~10,000
풀이
막히면 한 단계씩 펼친다2.
1단계 · 작은 예로 손으로 풀기
평균은 “모두 더한 값 ÷ 개수”다.
- [2, 4, 9] → 합 15, 개수 3 → 5
- [1, 2] → 합 3, 개수 2 → 1.5
- [−3, 3] → 합 0, 개수 2 → 0
원소를 \(x_1, \dots, x_n\)이라 하면 이 값은 \(\bar x = \frac{1}{n}\sum_{i=1}^{n} x_i\)이고, 통계에서는 표본평균이라 부른다(기술통계).
2단계 · 가장 단순한 방법과 그 속도
리스트를 한 번 돌며 더하면 된다. 원소가 최대 100개라 100번이면 끝난다.
3단계 · 핵심 아이디어
1단계의 식을 그대로 코드로 옮긴다. 두 가지만 조심한다.
- 나누기는
/를 쓴다.//는 몫만 남겨서 1.5가 1이 된다. - 답은 실수(소수)여도 된다. 다른 언어의 답안 틀에서도 이 문제의 답 자료형은 실수(
double)다.
4단계 · 코드 흐름
- 합을 담을 변수
total을 0으로 둔다. - 원소를 하나씩 꺼내
total에 더한다. total을 원소 개수로 나눠 돌려준다.
5단계 · 파이썬 코드
흐름을 그대로 옮기면 이렇다.
def solution(arr):
total = 0
for x in arr: # 원소를 하나씩 x에 담는다
total += x # total = total + x
return total / len(arr)
파이썬에는 합을 구하는 sum이 있어서 한 줄로 줄일 수 있다.
def solution(arr):
return sum(arr) / len(arr)
sum(arr): 원소를 모두 더한다. 속에서는 위의 반복과 같은 일을 한다.len(arr): 원소 개수다.
6단계 · 실행 추적
arr = [2, 4, 9]
| 꺼낸 x | total |
|---|---|
| (시작) | 0 |
| 2 | 2 |
| 4 | 6 |
| 9 | 15 |
15 / 3 = 5.0을 돌려준다.
7단계 · 복잡도와 흔한 실수
한 번 훑으니 \(O(n)\)이다.
//를 쓰면 [1, 2]의 평균이 1이 되어 틀린다.- 빈 리스트면 0으로 나누게 되지만, 이 문제는 길이가 1 이상이라 괜찮다. 제한이 없다면 먼저 확인해야 한다.
검증: 문제의 예시 2개를 통과했고, 무작위 리스트 1,000개에서 한 줄 버전과 반복문 버전, 분수로 계산한 정확한 평균이 모두 같았다 — 03_pg12944_p1.py