Adventure of 빠타박스
article thumbnail
728x90
728x90
SMALL

시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율

2 초 128 MB 216395 107543 88461 49.386%

문제

세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다.

예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다.

세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오.

입력

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

출력

첫째 줄에 새로운 평균을 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-2 이하이면 정답이다.

예제 입력 1

3
40 80 60

예제 출력 1

75.0

예제 입력 2

3
10 20 30

예제 출력 2

66.666667

10-2 이하의 오차를 허용한다는 말은 정확히 소수 2번째 자리까지 출력하라는 뜻이 아니다.

예제 입력 3

4
1 100 100 100

예제 출력 3

75.25

예제 입력 4

5
1 2 4 8 16

예제 출력 4

38.75

예제 입력 5

2
3 10

예제 출력 5

65.0

예제 입력 6

4
10 20 0 100

예제 출력 6

32.5

예제 입력 7

1
50

예제 출력 7

100.0

예제 입력 8

9
10 20 30 40 50 60 70 80 90

예제 출력 8

55.55555555555556

 

 


풀이


CPP

#include <iostream>
using namespace std;

int main()
{
    int M = 0; //과목 수 
    int score[1000]; // 과목 점수를 담을 배열
    cin >> M;
    
    //과목 점수 담기
    for(int i = 0; i < M; i++){
        cin >> score[i];
    }
    
    long HighScore = 0; // 최고점 판단
    long sum = 0; // 총합 
    
    //최고점 판단 및 총합
    for (int i = 0; i < M; i++){
        if(score[i] > HighScore){
            HighScore = score[i]; // score 배열에 담긴 값을 HighScore에 업데이트 해준다. 
        }
        sum += score[i]; // if문을 빠져나오면 가지고 있는 socre[i]의 방에 있는 값을 sum에 더하며 저장
    }
    double result = sum * 100.0 / HighScore / M;
    
    cout << result << "\\n";
    return 0;
}

입력된 과목별 점수 중에서 최고점을 구하고, 평균점수를 계산하여 출력하는 C++ 코드입니다.

 

먼저, 사용자로부터 입력 받은 과목 수를 변수 M에 저장하고,

이후 for문을 이용해 M번 반복하여 각 과목의 점수를 score 배열에 저장합니다.

다음으로, 최고점수를 저장할 변수 HighScore와 모든 점수의 합을 저장할 변수 sum을 초기화하고,

for문을 이용하여 score 배열에서 최고점수를 찾고 모든 점수의 합을 계산합니다.

마지막으로, 계산된 평균점수를 출력합니다.

 

코드에서 result 변수를 선언할 때 100.0으로 나누는 이유는,

나중에 계산할 때 HighScore와 M이 모두 int형으로 선언되어 있기 때문에,

정수형으로 나누어진 결과값이 실수형으로 바뀌지 않기 때문입니다.

따라서 double형으로 계산하고자 할 때에는 적어도 하나의 변수를 실수형으로 선언해주어야 합니다.

 

 

 

728x90
728x90
LIST
profile

Adventure of 빠타박스

@PPATABOX

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!