개발조각

[프로그래머스] 평균 구하기 본문

알고리즘🅰/프로그래머스

[프로그래머스] 평균 구하기

개발조각 2022. 3. 8. 10:17
728x90
반응형

평균 구하는 방법

  1. 평균을 구하려는 수를 더해서 합 구하기
  2. 더해준 합에 더해준 숫자의 개수만큼 나누어주기

배열 평균 구하는 방법

  1. 배열 안의 원소를 다 더해준다.
  2. 다 더해준 값에 배열의 길이만큼 나누어준다.

해결방안

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

배열 arr의 평균 구하기

  • arr의 전체 원소의 합 / 배열의 길이 -> arr.reduce((arr, cur)=> arr+cur) / arr.length;

 

arr의 전체 원소의 합 : arr.reduce((arr, cur)=> arr+cur)

이 문제를 보자마자 reduce()메서드를 써야겠다고 생각했습니다.

 

MDN Web Docs
reduce() 메서드는 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다.

reduce() 함수는 네 개의 인자를 가집니다.
1. 누산기 (acc)
2. 현재 값 (cur)
3. 현재 인덱스 (idx)
4. 원본 배열 (src)

구문 : 배열.reduce((callback)=>처리할 현재 요소, 기본값)

  • callback : 배열의 각 요소에 대해 실행할 함수. 다음 네 가지 인수(acc, cur, idx, src)를 받습니다.
  • 기본값 : 넣어도 되고 안 넣어도 됨
// reduce() 메서드 예제
const array1 = [1, 2, 3, 4];
const reducer = (previousValue, currentValue) => previousValue + currentValue; // 1 + 2 + 3 + 4
console.log(array1.reduce(reducer)); // 10

 

예제를 보시면 배열의 원소의 합을 쉽게 구할 수 있습니다.

  • reduce((이전 원소, 현재 원소) => 이전원소 + 현재원소)

 

그래서 arr.reduce((arr, cur)=> arr+cur) 이렇게 써주었습니다.

 

arr.reduce((arr, cur)=> arr+cur)

테스트 1 (arr = [1,2,3,4])
reduce((0, 1) => 0 + 1); // 1
reduce((1, 2) => 1 + 2); // 3
reduce((3, 3) => 3 + 3); // 6
reduce((6, 4) => 6 + 4); // 10

테스트 2 (arr = [5,5])
reduce((0, 5) => 0 + 5); // 5
reduce((5, 5) => 5 + 5); // 10

 

배열의 길이 : arr.length

배열 안의 원소의 합을 구했으니 배열 원소의 갯수만큼 나누어 주어야 됩니다.

배열원소의 개수는 배열의 길이로 구할 수 있습니다.


여기까지 프로그래머스 평균 구하기 해결방안에 대해 설명해보았습니다.

728x90
반응형
Comments