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의 합계를 구할 수 있다.