1일차 → 평균 구하기(reduce())
본문 바로가기
항해 중/2주차 알고리즘(프로그래머스)

1일차 → 평균 구하기(reduce())

by 은돌1113 2021. 11. 8.

문제 설명
정수를 담고 있는 배열 arr의 평균값을 return하는 함수

제한사항
- arr는 길이 1 이상, 100 이하인 배열입니다.
- arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.

내가 푼 문제 풀이

function solution(arr) { 

    let answer = 0; 
    
    for(let i=0; i<arr.length; i++){ 
    	answer += arr[i] 
    } 
    
    return answer / arr.length ; 
}


다른 사람이 푼 문제 풀이

reduce() 함수
reduce(줄이다)는 배열의 각 요소에 대해 callback을 실행하며 단 1개의 출력 결과를 만듭니다.

reduce 함수는 인자로 callback 함수와 초깃값을 받는다.
callback 함수의 인자는 누산 저장될 변수(acc), 현재 값(cur), 현재 인데스(idx), 원본 배열(src)

배열의 평균을 구하기 위한 가장 간단한 방법은 Array.prototype.reduce() 빌트인 함수를 이용하는 것이다.
reduce 함수를 이용하면 배열 내의 모든 값의 합계를 구할 수 있고, 이를 배열의 길이로 나눠주기만 하면 된다.

function solution(arr) { 
	
    let answer = 0; 
    const average = arr => arr.reduce((p, c) => p+c, 0) / arr.length 
    
    answer = average(arr) 
    
    return answer; 
}


화살표 함수

arr => arr.reduce... 라는 이 코드는

arr라는 이름의 함수를 생성하고 화살표 함수를 사용하여 실행 하고자 하는 코드를 작성하는 문법이다. 

function arr() { 
	arr.reduce.. 
} 와 같다.


https://programmers.co.kr/learn/courses/30/lessons/12944

 

코딩테스트 연습 - 평균 구하기

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

programmers.co.kr

 

댓글