(1) 문제링크

https://programmers.co.kr/learn/courses/30/lessons/12944

(2) 문제풀이 및 해설 1

문제풀이

arr = [1, 2, 3, 4]

def solution1(arr):
    answer = 0

    for i in arr :
        answer += i

    return answer / len(arr)

print(solution1(arr)) # 2.5

문제해설

  1. for문으로 arr을 순환하며 answer에 누적하여 더해준다.
  2. 누적 값을 arr의 배열 요소 길이만큼 나누어준다.

(2) 문제풀이 및 해설 2

문제풀이

arr = [1, 2, 3, 4]

def solution2(arr):
    return (sum(arr) / len(arr))

print(solution2(arr)); # 2.5

문제해설

  1. 내장 함수 sum을 활용하여 arr의 요소를 더한다.
  2. 누적 값을 arr의 배열 요소 길이만큼 나누어준다.

(2) 문제풀이 및 해설 3

문제풀이

arr = [1, 2, 3, 4]

from functools import reduce

def solution3(arr):
    return reduce(lambda x, y : x + y, arr) / len(arr)

print(solution3(arr)); # 2.5

문제해설

  1. 고차 함수를 사용하기 위한 모듈 functools를 활용한다.
  2. reduce함수에 람다 형식을 사용하여 arr값을 누적하며 더해준다.