문제 설명
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.
제한사항
0 ≤ numbers의 원소 ≤ 1,000
1 ≤ numbers의 길이 ≤ 100
정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.
📄 문제
function solution(numbers) {
var answer = 0;
return answer;
}
💻 내가 쓴 코드
// 반복문으로 수를 모두 더해준다.
// 그리고 배열 내, 더해준 숫자의 갯수만큼 나누어 준다.
// 문제점은 입력값과 더해주는 숫자의 갯수를 어떻게 설정..?
function solution(numbers) {
let sum = 0;
for (let i = 1; i <= 10; i++) {
sum += i;
}
return sum / 10;
}
💻 공부 후 코드
// 첫번째 배열의 수 부터 마지막 배열의 수까지 차례대로 더해줍니다.
// 그리고 배열 내의 숫자의 갯수 만큼 나누어줍니다.
// 중요한 점은 배열의 첫번째 숫자는 1번째가 아니라 0번째라는 것
function solution(numbers) {
let sum = 0; // sum 에 0을 할당
for (let i = 0; i < numbers.length; i++) { //배열의 길이 보다 - 1 낮은값만큼 반복
sum += numbers[i]; // 배열의 i 번째수를 sum에 더해준다.
}
return sum / numbers.length; // 마지막으로 배열의 길이만큼 나누어준다.
}
📌 배운 점
문제를 처음에 봤을 때 어떤식으로 풀어야할지 로직은 이해가가는데 사용해야하는 메서드를 몰라서 공부 후에 풀수 있게 된 문제였어요. 덕분에 .length 라는 메서드를 알게 되었고 배열의 이름[i]를 이용하면 그 배열의 i번째 숫자를 표현할 수 있다는 것도 배울수 있었네요 추가로 배열의 시작이 1번째 부터가 아니라 0번째 라는 것을 알게되었어요.
1) .length 배열의 길이를 나타냄
2) numbers[i] 배열의 i 번째 숫자를 뜻함
3) 배열은 0번째 부터 시작