level 1. 평균구하기

|

level 1. 평균구하기

출처

문제

def average(list): 함수를 완성해서 매개변수 list의 평균값을 return하도록 만들어 보세요. 어떠한 크기의 list가 와도 평균값을 구할 수 있어야 합니다.

풀이 (python)

def average(list): v = 0 for i in list: v = v + i return v / len(list) # 아래는 테스트로 출력해 보기 위한 코드입니다. list = [5,3,4] print("평균값 : {}".format(average(list))); 
  • 4개월 뒤에 해당 다시 풀어보았다.
#풀이1 - ZeroDivisionError 예외처리 필요 def average(list): return sum(list) / len(list) # sum() - O(N) 시간복잡도 #풀이2 - ZeroDivisionError 예외처리 def average(list): if not len(list): return 0 return sum(list) / len(list) #풀이3 - reduce, lambda from functools import reduce def average(list): return reduce(lambda x,y: x+y) / len(list) 

다른사람 풀이

def average(list): return (sum(list) / len(list)) 

배운점

  • sum 함수를 사용하면 리스트 각 요소들의 총 합을 구할 수 있구나!

풀이 1 (java)

public class GetMean { public int getMean(int[] array) { int sum = 0; for (int e : array) { sum += e; } return sum / array.length; } public static void main(String[] args) { int x[] = {5, 4, 3}; GetMean getMean = new GetMean(); System.out.println("평균값 : " + getMean.getMean(x)); } } 

풀이 2 (java)

import java.util.stream.*; public class GetMean { public int getMean(int[] array) { int sum = IntStream.of(array).sum(); return sum / array.length; } public static void main(String[] args) { int x[] = {5, 4, 3}; GetMean getMean = new GetMean(); System.out.println("평균값 : " + getMean.getMean(x)); } } 

배운점

  • java.util.stream 패키지를 통해서 array의 합계를 구할 수 있다.