본문 바로가기

Algorithm/Javascript로 코테 준비하기

[JS로 코테 준비하기] 3. 프로그래머스 - 배열의 평균값(feat. reduce)

반응형

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

반응형