SG의 개발 공부로그

배열의 평균값 [프로그래머스 코딩테스트] 본문

CodingTest

배열의 평균값 [프로그래머스 코딩테스트]

DebeloperSG 2023. 1. 6. 12:53
728x90

배열의 평균값

 

문제 설명

정수 배열 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

 

 

입출력 예 설명

입출력 예 #1

  • numbers의 원소들의 평균 값은 5.5입니다.

 

입출력 예 #2

  • numbers의 원소들의 평균 값은 94.0입니다.

 

 

풀이

for 문을 이용해서 변수에 배열들을 합산하고,

그 후 numbers.length  배열의 길이만큼 나눈 값을 return 했다.

function solution(numbers){
    let answer = 0;
    for(i of numbers) {
        answer += i
    }
    return answer / numbers.length;
}

for of 반복문은 ES6에서 추가된 새로운 컬렉션 전용 반복구문이다.

let iterable = [10, 20, 30];

for (var value of iterable) {
  console.log(value); // 10, 20, 30
}

 

for in 반복문과 for of 반복문의 차이점

  • for in 반복문 : 객체의 모든 열거 가능한 속성에 대해 반복
  • for of 반복문 : [Symbol.iterator] 속성을 가지는 컬렉션 전용

참조링크

https://velog.io/@onea/JS-for-...of%EC%99%80-for-...in%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

 

 

다른 풀이

reduce함수를 사용하여 초기값은 0으로 해놓고,

누산값과 현재 값을 더 해가면서 합산한 값을 number.length 로 나눠주었다.

function solution(numbers) {
    let answer = numbers.reduce((acc,cur) => acc + cur, 0) / numbers.length;
    return answer;
}

reduce함수 참조링크

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce

728x90