프로그래밍/알고리즘

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를 사용한다.