평균 구하기 | 프로그래머스

할 수 있는 최대한 단순한 코드를 만들고, 문제를 해결하는 다른 방법도 찾아보자

문제 풀러 가기

평균 구하기 (LV.1)


문제

정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.

function solution(arr) {
    var answer = 0;
    return answer;
}

제한 조건

  • arr은 길이 1 이상, 100 이하인 배열입니다.
  • arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.

입출력 예

arrreturn
[1,2,3,4]2.5
[5,5]5

풀이

Array.prototype.reduce()

function solution(arr) {
	return arr.reduce((acc, cur) =>
		acc + cur / arr.length, 0);
};

배열을 순회하며 누산하는 메소드 reduce를 사용한 솔루션


다른 사람의 풀이

reduce / parameter.length

function average(array){
  return array.reduce((a, b) => a + b) / array.length;
}

똑같이 reduce를 사용했지만 각 루프마다 current 값을 나누는 대신 reduce의 반환값을 나눴다. 따라서 initial value도 필요하지 않다. 루프 내부를 최대한 간결하게 만드는 것이 최적화에 좋아보인다.

for...of

function average(array){
    var sum = 0;
  for(var value of array){
    sum += value;
  }
  return sum/array.length;
}

reduce 대신 for..of 메소드로 배열의 모든 값을 더한 후 평균을 구함

좋은 웹페이지 즐겨찾기