level 1. 평균구하기
05 Mar 2017 | 알고리즘 프로그래밍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의 합계를 구할 수 있다.