Lv. 0 - 배열의 평균값 풀이과정
문제 설명
정수 배열 numbers
가 매개변수로 주어진다.
numbers
의 원소의 평균값을 return하도록 solution 함수를 완성해라.
제한사항
- 0 ≤
numbers
의 원소 ≤ 1,000 - 1 ≤
numbers
의 길이 ≤ 100 - 정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어진다.
입출력 예
numbers | result |
---|---|
[1,2,3,4,5,6,7,8,9,10] | 5.5 |
[89,90,91,92,93,94,95,96,97,98,99] | 94.0 |
입출력 예 설명
3-1) 입출력 예 설명 #1
numbers
의 원소들의 평균 값은 5.5입니다.
3-2) 입출력 예 설명 #2
numbers
의 원소들의 평균 값은 94.0입니다.
프로그래머스에서 제공한 코드
처음 프로그래머스에서 작성된 코드는 아래와 같다.
function solution(numbers) {
var answer = 0;
return answer;
}
문제 풀이
const solution = numbers => numbers.reduce((a, b) => (a + b)) / numbers.length
함수 선언
- 화살표 함수를 사용하여
numbers
매개변수를 받는다.
풀이
- 먼저 매개변수로 전달 받은 배열을 각각 합쳐준다.
reduce()
메서드를 사용 - 전부 합쳐준 뒤 배열의 length 만큼 나누어준다.
결과 반환
- 매개변수
numbers
에 [1,2,3,4,5,6,7,8,9,10]을 대입 후 length를 나누어주면 55 / 10 = 5.5 - 매개변수
numbers
에 [89,90,91,92,93,94,95,96,97,98,99]을 대입 후 length를 나누어주면 1034 / 11 = 94
실행
-
console.log(solution([1,2,3,4,5,6,7,8,9,10]))
실행하면 5.5가 출력된다. -
console.log(solution(89,90,91,92,93,94,95,96,97,98,99))
실행하면 11이 출력된다.
다른 사람의 풀이 참고
공부한 reduce()
메서드로 적용해봤는데 많은 사람들이 동일하게 푼 풀이과정을 보고 흡족했다.
만약 reduce()
메서드를 몰랐다면, 나도 반복문으로 적용했을 것 같다.
// [150명] 나와 같은 reduce 메서드를 사용한 풀이방식
function solution(numbers) {
var answer = numbers.reduce((a,b) => a+b, 0) / numbers.length;
return answer;
}
// [144명] for ..of 반복문을 사용한 풀이방식
function solution(numbers) {
var answer = 0;
for(i of numbers) {
answer += i
}
return answer / numbers.length;
}
링크
- 문제 링크: 문제 링크
- Git: rarrit github
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges