본문 바로가기
코딩 테스트/알고리즘

알고리즘 12번 - JS, C++

by GREEN나무 2024. 11. 13.
728x90

JS

문제

정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.

제한사항
arr은 길이 1 이상, 100 이하인 배열입니다.
arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.


계획

for문으로 돌려서 전체 합산 -> arr 길이로 나누기


 

function solution(arr) {
    let sum=0;
    for (let n of arr){
        sum +=n;
    }
    return sum/arr.length
}

코드 간략화하기

function solution(arr) {
    return arr.reduce((sum, n) => sum + n, 0) / arr.length;
}

reduce 메서드: 배열의 모든 요소를 순회하며 합계를 계산합니다.
   (sum, n) => sum + n은 누적된 값(sum)에 현재 요소(n)를 더합니다.
   초기값은 0입니다.


출처 

reduce 매서드 : https://miiingo.tistory.com/365


◆ C++

계획

js의 for of 와 비슷한 c++에서 for (const auto& 변수명 : 배열명)  사용하기


참고, 풀이

for (const auto& 변수명 : 배열명)

for (const auto& number : arr)

 

배열 길이 : arr.size() 


#include <string>
#include <vector>

using namespace std;

double solution(vector<int> arr) {  
    double sum = 0;
    for (const auto& number : arr){ 
        sum += number;
    }
    return sum/arr.size();
}

코드 간략화하기

#include <numeric>
#include <vector>

using namespace std;

double solution(const vector<int>& arr) {  
    return accumulate(arr.begin(), arr.end(), 0.0) / arr.size();
}

참고

for문 : https://boycoding.tistory.com/210

배열길이 : https://dev-mystory.tistory.com/126

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'코딩 테스트 > 알고리즘' 카테고리의 다른 글

알고리즘 14번 - 추가공부  (0) 2024.11.13
알고리즘 13번 - js, c++  (1) 2024.11.13
알고리즘 11번-JS, c++  (2) 2024.11.13
알고리즘 10번 - js, c++  (0) 2024.11.12
알고리즘 9번 - js, c++  (0) 2024.11.12