Algorithm/Javascript로 코테 준비하기
[JS로 코테 준비하기] 3. 프로그래머스 - 배열의 평균값(feat. reduce)
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/120817
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
반응형
'Algorithm > Javascript로 코테 준비하기' 카테고리의 다른 글
[JS로 코테 준비하기] 5. 프로그래머스 - 문자열 뒤집기(feat. 문자열 <-> 배열) (0) | 2022.10.26 |
---|---|
[JS로 코테 준비하기] 4. 프로그래머스 - 제곱수 판별하기(feat. 정수 판단하기) (0) | 2022.10.23 |
[JS로 코테 준비하기] 2. 프로그래머스 - 각도기(feat. JS 분기 처리) (1) | 2022.10.13 |
[JS로 코테 준비하기] 1. 프로그래머스 - 몫 구하기(feat. ~~) (2) | 2022.10.11 |
[JS로 코테 준비하기] 0. FE 개발자의 코딩테스트 언어 (4) | 2022.10.10 |