티스토리 뷰
문제 설명
정수 배열 numbers가 매개변수로 주어집니다. numbers 의 원소의 평균값을 return 하도록 solution 함수를 완성해주세요.
제한사항
- 0 ≤ numbers 의 원소 ≤ 1,000
- 1 ≤ numbers 의 길이 ≤ 100
- 정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.
문제 풀이
function solution(numbers) {
let sum = numbers.reduce((acc,cur) => {
return acc+cur;
},0);
let average = sum / numbers.length;
return average;
}
1. 모든 원소의 합 구하기
let sum = numbers.reduce((acc, cur) => {
return acc + cur;
},0);
- 'sum'이라는 변수를 선언하고 'numbers' 배열의 모든 원소를 더한 값을 할당한다.
- 'numbers.reduce'는 배열의 모든 원소를 하나씩 순회하며 누적 결과를 계산하는 함수.
- 'reduce' 메서드는 두 가지 인자를 받는다 : 콜백 함수(acc), 초기값(cur)
1-1 콜백 함수
(acc,cur) => {
return acc + cur;
}
- 'reduce'메서드의 콜백 함수는 두 개의 매개변수를 받는다.
1. 'acc' (accumulator, 누적기) : 이전까지의 누적 값.
2. 'cur' (current, 현재 값) : 현재 순회 중인 배열의 원소.
- 콜백 함수는 'acc + cur'을 반환한다. 즉, 누적 값에 현재 값을 더하여 반환한다.
- 이 콜백 함수는 배열의 모든 원소에 대해 반복된다.
1-2 초기값
0
-'reduce' 메서드의 두 번째 인자는 초기값이다. 여기서는 '0'을 초기값으로 설정한다.
- 따라서, 첫 번째 순회에서 'acc'는 '0'이고 'cur'는 배열의 첫 번째 원소이다.
1-3 평균 계산
let average = sum / numbers.length;
- 'sum' 변수에는 배열의 모든 원소를 더한 값이 들어 있다.
- 'numbers.length' 는 배열의 길이, 즉 원소의 개수이다.
- 'sum' 을 'numbers.length' 로 나누면 배열 원소들의 평균이 된다.
- 이 값을 'average' 변수에 할당한다.
1-4 평균값 반환
return average;
- 'average'값을 변환하여 함수가 종료된다.
- 이 값은 'numbers' 배열의 원소들의 평균이다.
'스파르타 > 알고리즘 코드카타' 카테고리의 다른 글
코딩 테스트 - 수박수박수박수박수박수? (0) | 2024.08.01 |
---|---|
코딩 테스트 - 짝수와 홀수 (0) | 2024.07.11 |
코딩 테스트-짝수의 합 (1) | 2024.07.10 |
코딩 테스트 - 각도기 (0) | 2024.07.08 |
코딩 테스트 - 숫자 비교하기 (0) | 2024.07.05 |