ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • #AIL_23.11.03 // Programmers_배열의 평균 값
    AIL( Algorithm I Learned) 2023. 11. 3. 20:51

    ## AIL_배열의 평균 값

    ***문제 설명
     정수 배열 numbers가 매개변수로 주어집니다.
     numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.


    ***제한사항
     0 ≤ numbers의 원소 ≤ 1,0001
    ≤ numbers의 길이 ≤ 100
    정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.


    ***입출력 예
    numbers result
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 5.5
    [89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99] 94.0

    ***입출력 예 설명
    입출력 예 #1
    numbers의 원소들의 평균 값은 5.5입니다.

    입출력 예 #2
    numbers의 원소들의 평균 값은 94.0입니다.

     


    ## solution.JavaScript

    1. 문제의 접근 방식

    정수 배열 `numbers`의 원소들의 평균값을 구하는 문제입니다. 

     

    1) 배열 내 모든 원소를 합산하기 위한 변수 `sum`을 초기화 합니다. 

     

    2) 평균값을 저장할 변수 `avg`를 초기화합니다. 

     

    3) 그 다음, 배열을 반복하면서 각 원소를 `sum`에 더해나갑니다.

     

    4) 배열을 모두 순환한 후에 `sum`을 배열의 길이로 나누어서 평균값을 계산합니다. 

     

    5) 마지막으로 계산된 평균값을 반환합니다. 

     

    핵심은 배열 내 모든 원소 합산 후 총합을 배열의 길이로 나누어 평균값을 계산하는 것!!

     


    2. 문제풀이

    function solution(numbers) {
           let sum = 0;
           let avg = 0; 
        for(let i=0; i < numbers.length; i++) {
            sum = numbers[i]+sum;  
            avg = sum/numbers.length;
        
        }
        return avg;
    }
    /*
    테스트 1
    입력값 〉	[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    기댓값 〉	5.5
    테스트 2
    입력값 〉	[89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
    기댓값 〉	94.0
    */

     


    3. 다른사람의 문제풀이 및 접근방식 분석

    function solution(numbers) {
        var answer = numbers.reduce((a,b) => a+b, 0) / numbers.length;
        return answer;
    }
    /*
    테스트 1
    입력값 〉	[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    기댓값 〉	5.5
    테스트 2
    입력값 〉	[89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
    기댓값 〉	94.0
    */

     

    위의 코드는 배열의 `reduce` 함수와 화살표 함수를 사용하여 문제를 해결하였습니다. `reduce` 함수는 배열의 모든 원소를 하나의 값으로 줄이는 데 사용합니다. 위의 코드에서 `numbers.reduce((a,b) => a + b, 0)`과 같이 사용되었습니다. `a`는 누적된 합계를 나타내며, `b`는 배열의 각 원소을 나타냅니다. 초기값을 0으로 지정하여 합계를 0에서부터 시작하도록 지정했습니다. 

     


    # 더 효율적인 `reduce`함수를 사용하자!

    # `reduce` 기억하기_ 배열의 모든 원소를 하나의 값으로 줄인다!

Designed by Tistory.