Code KATA/알고리즘 코드카타

[2024.12.13] 평균 구하기

iiblueblue 2024. 12. 13. 15:56

문제 설명

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

 

 

제한사항

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

 

 

입출력 예

arr return
[1, 2, 3, 4] 2.5
[5, 5] 5

 

 

문제 풀이

풀이 언어 : C++

#include <string>
#include <vector>
#include <numeric>

using namespace std;

double solution(vector<int> arr) {
    double answer = 0;
    double arrSum = accumulate(arr.begin(), arr.end(), 0);
    int arrSize = arr.size();
    
    answer = arrSum / arrSize;
    return answer;
}

벡터 내의 요소들의 합을 구할 수 있는 accumulate()함수를 이용하여 벡터의 합을 구해준 후 벡터의 길이를 size()함수로 구해 평균을 구한뒤 리턴한다.

 

참고사항

accumulate() 함수는 벡터 내의 요소의 합 구하는 함수로 풀이에서는 처음부터 끝까지 모든 요소를 더하게 하였지만 인덱스를 지정하면 원하는 범위의 벡터 값을 더할 수 있다. 사용할 때는 #include <numeric>을 앞에 선언해주어야 한다.

#include <numeric>
...

vectorSum = accumulate(벡터.여기부터, 벡터.여기까지, 초기값);

매개변수는 각각 시작 인덱스, 끝 인덱스, 그리고 초기값이다. 문제 풀이에선 시작을 나타내는 arr.begin(), 끝을 나타내는 arr.end()을 사용하였고 초기값은 0으로 설정하였다.

 

 

오답노트

accumulate를 사용하기 전 for문을 사용하여 벡터의 모든 값을 더해주려 하였는데 알 수 없는 이유로 일부 성공하고 일부 실패하여 오답처리 되었다.

accumulate를 사용하면서 <numeric>을 적지 않아 오류가 발생했다.

 

 

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/12944

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

'Code KATA > 알고리즘 코드카타' 카테고리의 다른 글

[2024.12.15] 약수의 합  (0) 2024.12.16
[2024.12.14] 자릿수 더하기  (0) 2024.12.16
[2024.12.12] 짝수와 홀수  (0) 2024.12.12
[2024.12.11] 배열의 평균값  (0) 2024.12.11
[2024.12.10] 짝수의 합  (0) 2024.12.10