Lv. 1 - 평균 구하기 풀이과정
문제 설명
정수를 담고 있는 배열 arr
의 평균값을 return하는 함수, solution을 완성해보세요.
제한사항
-
arr
은 길이 1 이상, 100 이하인 배열입니다. -
arr
의 원소는 -10,000 이상 10,000 이하인 정수입니다.
입출력 예
numbers | result |
---|---|
[1,2,3,4] | 2.5 |
[5,5] | 5 |
입출력 예 설명
3-1) 입출력 예 설명 #1
arr
의 원소들의 평균 값은 2.5입니다.
3-2) 입출력 예 설명 #2
arr
의 원소들의 평균 값은 5입니다.
프로그래머스에서 제공한 코드
처음 프로그래머스에서 작성된 코드는 아래와 같다.
function solution(arr) {
var answer = 0;
return answer;
}
문제 풀이
const solution = arr => arr.reduce((a,b) => (a + b)) / arr.length
함수 선언
- 화살표 함수를 사용하여
arr
매개변수를 받는다.
풀이
- 먼저 매개변수로 전달 받은 배열을 각각 합쳐준다.
reduce()
메서드를 사용 - 전부 합쳐준 뒤 배열의 length 만큼 나누어준다.
결과 반환
- 매개변수
arr
에 [1,2,3,4]을 대입 후 length를 나누어주면 (1+2+3+4) / 4 = 2.5 - 매개변수
arr
에 [5,5]을 대입 후 length를 나누어주면 (5+5) / 2 = 5
실행
-
console.log(solution([1,2,3,4]))
실행하면 5.5가 출력된다. -
console.log(solution(5,5))
실행하면 11이 출력된다.
다른 사람의 풀이 참고
이전의 풀었던 Lv.0 평균값 구하기와 동일한 문제여서 같은 풀이 방식으로 문제를 해결했다.
그리고 댓글로 하나 안 사실은 배열의 길이가 커질수록 reduce메서드보다 for문이 훨신 속도가 빠르다는 것이다.
// [57명] reduce 메서드를 사용한 풀이방식
function average(array){
return array.reduce((a,b) => a+b) / array.length;
}
// [144명] for 반복문을 사용한 풀이방식
function average(array){
var sum = 0;
for(var i = 0; i<array.length; i++){
sum += array[i];
}
return sum/array.length;
}
링크
- 문제 링크: 문제 링크
- Git: rarrit github
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges