문제 설명
정수를 담고 있는 배열 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 |