출처: 프로그래머스 코딩테스트
function solution(arr) {
let sum = 0;
for (let i = 0; i < arr.length; i++) {
sum += arr[i];
}
return sum / arr.length;
}
처음에는 주어지는 배열 안에서 가장 큰 값과 작은 값을 구한 다음, 나누기 2를 하는 풀이로 작성하였으나
기본적이고 더 심플하게 접근하는 방법이 좋을 것 같아 for문
을 이용하여 배열의 전체 핪을 구한 뒤 배열의 길이만큼 나누어주었다.
다른 사람의 풀이로는 reduce()
를 주로 사용하여 더 간단하게 풀이하였다.
이외에도 조금 돌아가는 방법이지만 sort()
로 배열의 값을 오름차순으로 정렬하는 방법도 생각해보았다.
function average(array){
return array.reduce((a, b) => a + b) / array.length;
}
제시되어 있던 arr
라는 배열의 약자도 array
로 다시 정정하여 풀었고, 위와 같은 방법이 가장 심플한 것 같다.
const array1 = [1, 2, 3, 4];
const reducer = (previousValue, currentValue) => previousValue + currentValue;
// 1 + 2 + 3 + 4
console.log(array1.reduce(reducer));
// expected output: 10
// 5 + 1 + 2 + 3 + 4
console.log(array1.reduce(reducer, 5));
// expected output: 15
리듀서 함수는 네 개의 인자
리듀서 함수의 반환 값은 누산기에 할당되고, 누산기는 순회 중 유지되므로 결국 최종 결과는 하나의 값이 됩니다.