본문 바로가기

Algorithm

[알고리즘] #8 평균 구하기 | 프로그래머스

728x90

프로그래머스 평균구하기 알고리즘 문제

 

https://programmers.co.kr/learn/courses/30/lessons/12944

 

코딩테스트 연습 - 평균 구하기

정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 입출력 예 arr

programmers.co.kr

 

 

 


 

 

 

문제 설명

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

 

 

제한사항

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

 

입출력 예

 

 

 

 

 

 


 

 

 

 

< 문제 풀이 >

 

 

정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
let arr = [1,2,3,4];
//let arr = [5,5];

solution(arr);

function solution(arr) {
  let sum = 0;
  let avr = 0;
  
  //arr 에서 index 찾기
    for (let index in arr){
    //arr 엘리먼트들 다 더하기 (합계)
      sum += arr[index];
     // 합계 / 엘리먼트 개수 = 평균
      avr = sum/arr.length;
    }
  return avr;
}

 

for in 문을 돌려서 arr 안의 값을 먼저 합쳐주자. 그러고난 후 합친 값을 합친 개수로 나눈다.  


 

 

 

다른 사람들은 어떻게 풀었을까?

 

https://programmers.co.kr/learn/courses/30/lessons/12944/solution_groups?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

/ 문제가 개편되었습니다. 이로 인해 함수 구성이나 테스트케이스가 변경되어, 과거의 코드는 동작하지 않을 수 있습니다.
// 새로운 함수 구성을 적용하려면 [코드 초기화] 버튼을 누르세요. 단, [코드 초기화] 버튼을 누르면 작성 중인 코드는 사라집니다.

let arr = [1,2,3,4];
// let arr = [5,5];

solution(arr);

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

reduce 메서드로 누적값, 현재값 가져온다. 현재 값을 누적값에 계속 더해준다. 시작 초기값은 0이다.  누적값을 구했다면 arr.length 만큼 (arr.element 숫자 개수) 나누어준다. 

 

728x90