Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 코딩강의
- NCP
- 코딩스터디
- codepresso
- 리액트
- AI코칭스터디
- 슥삭
- API 명세서
- 매직메서드
- 코드프레소
- 코딩이러닝
- IT교육
- markdown
- 네이버커넥트재단
- 네이버클라우드플랫폼
- 대외활동
- GitLab
- 코딩테스트
- 깃허브
- 무료코딩교육
- Elastic Search
- reduce()
- 프로그래머스
- git
- 무료IT교육
- MySQL
- 마크다운
- 자바스크립트
- 엘라스틱서치
- 타입스크립트
Archives
- Today
- Total
개발하는 무민
[프로그래머스-Level1] 평균 구하기_JavaScript + reduce() 함수 본문
평균 구하기
- 문제 설명
정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
- 제한사항
- arr은 길이 1 이상, 100 이하인 배열입니다.
- arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.
- 입출력 예
arr return[1,2,3,4] | 2.5 |
[5,5] | 5 |
< reduce() 함수 >
자바스크립트의 reduce 함수는 배열의 각 요소를 순회해서 collback 함수의 실행 값을 누적하여 하나의 결과값을 반환한다. 기본적인 형태는 아래와 같다.
arr.reduce(callback(accumulator, currentValue, index, array), initialValue)
reduce()의 파라미터는 다음과 같다.
accumulator(누산기)
- 누적되는 값
- callback 함수의 반환값을 누적함
- initialValue를 설정한 경우, callback의 최초 호출시 initialValue 값으로 초기화
- initialValue가 없을 경우, arr의 0번째 인덱스 값으로 초기화
(즉, initialValue는 Optional한 파라미터이며, 최초 callback 함수 실행시 accumulator에 제공되는 값이다.
초기값을 제공하지 않을 경우 배열의 첫 번째 요소를 사용하고, 빈 배열에서 초기값이 없을 경우엔 에러가 발생한다.)
currentValue
- 현재 배열의 요소
index (생략 가능!)
- 현재 배열 요소의 인덱스
array (생략 가능!)
- reduce 함수를 호출한 배열 (위에서는 arr가 해당된다.)
initialValue (생략 가능!)
- callback의 최초 호출시 accumulator의 초기값
reduce 함수를 사용하여 배열의 요소들의 합계를 구하고, 해당 값을 배열의 길이로 나누어서 평균값을 계산하면 된다.
- 풀이
// 배열의 합계와 평균을 구하는 방법 : reduce() 사용
// reduce를 통해 배열의 합을 구한 뒤, 배열의 길이만큼 나누어서 평균값 계산
function solution(arr) {
// 결과를 담을 상수 변수 result 선언 후
// 함수의 인자로 받은 arr에 reduce 함수를 통해 합계를 구함
// 인자로 accumulaotr, currValue 두개만 사용한다.
// accumulaotr = sum => 누적 값을 담는 인자
// currValue => 현재 배열의 요소 값을 담는 인자
const result = arr.reduce(function add(sum, currValue) {
return sum + currValue; //즉, arr 배열 요소를 하나씩 순회하며 sum에 더한 값을 리턴해줌
}, 0); //initialValue는 0으로 전달하거나 값을 주지 않아도 동작한다.
// 위에서 구한 배열의 합계값을 배열의 길이(요소의 갯수)로 나누어 평균값 구하기
const average = result / arr.length;
//console.log(average);
return average;
}
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스-Level1] 짝수와 홀수_JavaScript + 삼항연산자 (0) | 2022.05.25 |
---|---|
[프로그래머스-Level1] 콜라츠 추측_JavaScript (0) | 2022.05.20 |
[프로그래머스-Level1] 하샤드 수_JavaScript (0) | 2022.05.18 |
[프로그래머스-Level1] 핸드폰 번호 가리기_JavaScript (0) | 2022.05.17 |
[프로그래머스-Level1] 행렬의 덧셈_JavaScript (0) | 2022.05.16 |