Programmers 프로그래머스 코딩테스트 연습 - 평균 구하기 (JavaScript)
Programmers(프로그래머스)의 코딩테스트 연습문제 Level 1 중,
평균 구하기 문제를 JavaScript로 해결해 보도록 하겠습니다.
문제 설명
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
제한사항
- arr은 길이 1 이상, 100 이하인 배열입니다.
- arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.
입출력 예
arr | return |
[1,2,3,4] | 2.5 |
[5,5] | 5 |
작성한 답
solution.js
function solution(arr) {
return arr.reduce((accumulator, currentValue) => accumulator + currentValue) / arr.length;
}
설명
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성하는 문제입니다.
평균값을 구하는 방법은 다들 잘 아시다시피 모든 수들을 더한 값에 수들의 갯수를 나눠주면 됩니다.
모든 수를 더한다고 했을 때, JavaScript의 reduce() 함수를 가장 먼저 떠올리시면 될 것 같습니다.
reduce() 함수의 callback 함수에서 첫버째 인수는 누적값을 나타내고, 두번째 인수는 현재 값을 나타내기에 코드만 봐도 이 인수가 무엇을 의미하는지 바로 이해하실 수 있도록 첫번째 인수 이름을 accumulator, 두번째 인수 이름을 currentValue 라고 명명했습니다.
역시 장황한 설명보다 작성한 답의 코드를 풀어내어 console.log()로 진행 과정을 출력해서 보여 드리는 것이 이해가 빠르실 것 같습니다.
var arr = [1, 2, 3, 4];
solution(arr);
function solution(arr) {
var sum = arr.reduce((accumulator, currentValue) => {
console.log("accumulator : ", accumulator, " / currentValue : ", currentValue);
return accumulator + currentValue;
});
console.log("sum : ", sum);
var avg = sum / arr.length;
console.log("avg : ", avg);
return avg;
}
// 콘솔 출력 내용
// accumulator : 1 / currentValue : 2
// accumulator : 3 / currentValue : 3
// accumulator : 6 / currentValue : 4
// sum : 10
// avg : 2.5
확실히 풀어내어 진행과정이 나타나있는 코드를 보시면 바로 감이 오시리라 생각됩니다.
역시 장황한 설명보다는 앞으로 이런 식으로 설명드리는 것이 더 좋을 것 같습니다.
도움이 되셨다면 공감, 댓글 부탁드립니다!
궁금하신 점이나 요청 사항은 언제든지 말씀 해주세요!
감사합니다.
'Developer > Algorithm' 카테고리의 다른 글
Programmers 프로그래머스 코딩테스트 연습 - 문자열 다루기 기본 (JavaScript) (0) | 2020.08.30 |
---|---|
Programmers 프로그래머스 코딩테스트 연습 - x만큼 간격이 있는 n개의 숫자 (JavaScript) (0) | 2020.08.28 |
Programmers 프로그래머스 코딩테스트 연습 - 행렬의 덧셈 (JavaScript) (0) | 2020.08.26 |
Programmers 프로그래머스 코딩테스트 연습 - 직사각형 별찍기(JavaScript) (0) | 2020.08.25 |
Programmers 프로그래머스 코딩테스트 연습 - 자릿수 더하기 (JavaScript) (0) | 2020.08.22 |
댓글