프로그래밍/알고리즘
Softeer-연습문제-성적평균(C++)
Se-chan Oh
2021. 3. 23. 22:10
문제 링크 :
https://softeer.ai/practice/info.do?eventIdx=1&psProblemId=389
문제 개요 :
주어진 구간 안의 학생 성적 평균을 구하는 문제이다.
#include<iostream>
#include<vector>
using namespace std;
int main(int argc, char** argv)
{
int N,K; // 학생 수, 구간 수
cin >> N >> K;
vector<int> scores(N); // 성적 저장
for (int i=0;i<N;i++){
cin >> scores[i];
}
vector<double> ans(K,0); // 결과 저장
for (int i=0;i<K;i++){
int A,B; // 구간 [A,B]
cin >> A >> B;
for (int j=A-1;j<B;j++){
ans[i]+=scores[j]; // 점수 총합
}
ans[i] /= (B-A+1); // 인원으로 나눠서 평균 구하기
}
for (int i=0;i<K;i++){
printf("%.2f\n",ans[i]); // 소수점 아래 2자리까지 표현
}
return 0;
}
주의해야 할 요소들
1) 구간 [A,B]는 닫힌 구간이다. 즉, A와 B를 포함한다.
2) 배열의 인덱스는 0에서 시작하므로 점수 총합을 구할 때 (A-1)~(B-1)까지의 인덱스를 for문으로 돌아야 한다.
3) 소수점 아래 2자리까지 표현해야하므로 자료형은 double을 사용하고, 출력은 %.2f를 사용한다.