프로그래머스) 평균 구하기

minji jeon·2022년 7월 17일
0

알고리즘

목록 보기
4/29
post-thumbnail

문제

정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
arr은 길이 1 이상, 100 이하인 배열입니다.
arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.

1. 접근

우선 평균을 구하려면 전체 값을 더한다음 /n을 해주면 되는데
배열 전체 값을 더하는 것이 뭐가 있을까 하다가
배열의 값을 모두 더해주는 reduce함수를 생각하게 되었다.

reduce함수가 궁금하다면 이곳에 정리를 해놓았다.
https://velog.io/@mingdolacucudas/reduce-%EB%B0%B0%EC%97%B4%EC%95%88%EC%97%90-%EA%B0%92-%EB%AA%A8%EB%91%90%EB%8D%94%ED%95%98%EA%B8%B0

2. 내 답

function solution(arr) {
    result=arr.reduce((a,b)=>(a + b))
     return result/arr.length;
 }

우선 배열의 모든 값을 더해준 뒤 배열의 길이만큼 나눠주었다.

3. 다른 답

reduce를 안쓰는 방법도 생각해보자 해서 찾아보았더니 우선 가장 기본적으로
반복문을 통해 모든 값을 더해줄 수 가 잇다.

 function average(array){
  
    var sum = 0;
    for(var i=0; i<array.length; i++)
      sum += array[i];
    return sum/array.length;
  }

그 다음 for 반복문 대신 foreach를 사용하는 방법도 있다...
드림코딩 앨리쌤이 알려주시길 foreach문은 for문보다 가독성이 좋아 간단한 반복문에는 사용하면 좋지만 성능은 for문보다 떨어진다고 한다.

  function solution(arr) {
    let sum = 0;
arr.forEach(function(e){sum+=e;});
    return (sum/arr.length);    
}

foreach함수는 배열의 모든 요소를 하나씩 검사해준다.
처음 sum이라는 변수를 우선0으로 맞춰주고
배열의 요소를 e라고 정한뒤
sum += e 로 각각의 요소를 더해준뒤 n개만큼 나눠주었다.

처음에는 return대신 console.log을 넣었더니 undefined가 출력되었다.
그래서 console과 return의 차이점을 찾아보았다.
https://velog.io/@sorin44/return%EA%B3%BC-console.log%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90
궁금하다면 딸깍!

정리를 하자면,
console.log()는 console 창에 결괏값을 나타나게만 사용할 수 있고,
reuturn은 함수 선언할 때 사용할 수 있습니다.
console.log 는 show라는 개념이라서, 변수에 대입해도 아무 값도 들어가지 않으며 그저 보여주기만 하는 것이다.
결론, 프로그래머스는 return을 사용하자.

profile
은행을 뛰쳐나와 Deep Dive in javascript

0개의 댓글