접근 방법
- 파이썬의 리스트 슬라이싱 비슷하게 만들어 평균 구하기
#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
int main(int argc, char** argv)
{ int n, k;
scanf("%d %d", &n, &k);
vector<int> scores;
vector<pair<int, int>> slicing;
// 점수 입력
for(int i = 0; i < n; ++i){
int score;
scanf("%d", &score);
scores.push_back(score);
}
// 구간 평균
for(int i = 0; i < k; ++i){
int start, end;
float avg = 0;
scanf("%d %d", &start, &end);
for(int j = start - 1; j < end; ++j){
avg += scores[j];
}
avg = (float)avg / (end - start + 1) * 100;
printf("%.2f\n", round(avg) / 100);
}
return 0;
}
#include<iostream>
#include<vector>
#include<numeric>
using namespace std;
int main(int argc, char** argv)
{ int n, k;
scanf("%d %d", &n, &k);
vector<int> scores;
// 점수 입력
for(int i = 0; i < n; ++i){
int score;
scanf("%d", &score);
scores.push_back(score);
}
// 구간 평균
for(int i = 0; i < k; ++i){
int start, end;
float avg;
vector<int> temp;
scanf("%d %d", &start, &end);
temp.assign(scores.begin() + start - 1, scores.begin() + end);
avg = accumulate(temp.begin(), temp.end(), 0.0) / temp.size();
printf("%.2f\n", avg);
}
return 0;
}
assign을 통해 원하는 구간만 얻을 수 있다.