[프로그래머스 Lv .1] 평균 값 구하기

Soozynn·2021년 10월 22일
0

알고리즘 풀이

목록 보기
6/6


출처: 프로그래머스 코딩테스트

풀이

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로 다시 정정하여 풀었고, 위와 같은 방법이 가장 심플한 것 같다.

sort()란? / reduce()란?


reduce의 사용방법

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

리듀서 함수는 네 개의 인자

  • 누산기 (acccumulator)
  • 현재 값 (currentValue)
  • 현재 인덱스 (index)
  • 원본 배열 (src)

리듀서 함수의 반환 값누산기에 할당되고, 누산기는 순회 중 유지되므로 결국 최종 결과는 하나의 값이 됩니다.

0개의 댓글