백준/백준 단계별 문제풀이

백준 1546번 (C++)

FDEE 2020. 8. 21. 16:09

www.acmicpc.net/problem/1546

 

1546번: 평균

첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보

www.acmicpc.net

 

<답안>

#include <iostream>

using namespace std;

int main() {

    int before[1000] = {0};

    double after[1000] = {0};

    int n, max = 0;

    double result = 0;

    

    cin>>n;

    for(int i=0; i<n; i++)

    {

        cin>>before[i];

        if(before[i]>max)

            max = before[i];

    }

    for(int i=0; i<n; i++)

    {

        after[i] = (double)before[i]/(double)max*100;

        result += after[i];

    }

    cout<<result/(double)n;

    

    return 0;

}

 

<설명>

최대개수가 1000개 이므로 점수를 저장할 배열 before[1000]을 만든다

인덱스 i=0부터 n-1까지 증가시키며 before[i] 값을 받아 저장한다

만약 before[i]값이 max값보다 큰 경우 max 값을 변경한다

인덱스 i=0부터 n-1까지 증가시키며 새로운 점수를 배열 after[i]에 저장한다

새로운 점수 = 이전 점수(before[i]) / max * 100

평균값 합산을 위한 result에 값을 누적하여 더한다

마지막으로 n개만큼 나눈값을 출력한다

 

'백준 > 백준 단계별 문제풀이' 카테고리의 다른 글

백준 4344번 (C++)  (0) 2020.08.21
백준 8958번 (C++)  (0) 2020.08.21
백준 3052번 (C++)  (0) 2020.08.21
백준 2577번 (C++)  (0) 2020.08.21
백준 2562번 (C++)  (0) 2020.08.21