Algorithm/Javascript로 코테 준비하기
[JS로 코테 준비하기] 3. 프로그래머스 - 배열의 평균값(feat. reduce)
zeo.y
2022. 10. 22. 19:37
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/120817
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
JS Array - reduce
1. reduce
- reduce는 배열을 순회하며 각 요소에 대해 주어진 함수를 실행해 하나의 값을 반환함
- reduce의 인자: 누산기(
acc
), 현재 값(cur
), 현재 인덱스(idx
), 원본 배열(src
)
활용 예시)
const arr = [1, 2, 3, 4];
const init = 0;
const sum = (a, b) => a + b;
const sumArr = arr.reduce((acc, cur) => sum(acc, cur), init);
console.log(sumArr); //10
2. 배열의 평균값
numbers의 길이가 1이상이므로, 초기값을 줄 필요가 없음
function solution(numbers) {
const sum = numbers.reduce((prev, cur) => prev + cur);
const size = numbers.length;
return sum / size;
}
3. 만약 numbers의 길이가 0이상이었다면?
초기값으로 0을 넘겨주어야 함
function solution(numbers) {
const sum = numbers.reduce((prev, cur) => prev + cur, 0);
const size = numbers.length;
return sum / size;
}
4. for문을 지양하고 JS 배열 내장 메서드를 활용하자
솔직히 이런 류의 문제를 보면, 가장 먼저 for이 떠오르고 기계처럼 코드를 작성한다. C++을 쓰던 습관대로 작성해도 정답을 찾는데 문제는 없겠지만 JS가 가진 특성을 잘 활용하는 것이 굳이 JS로 알고리즘을 풀어보는 이유일 것이라 생각한다.
Reference
반응형