[BOJ/C++] 1546 평균

햅쌀이·2023년 5월 9일
3

✍🏻 Algorithm

목록 보기
10/22
post-thumbnail

문제 링크 https://www.acmicpc.net/problem/1546

📝 문제

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

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

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

💻 코드

#include <iostream>
using namespace std;

int main()
{
    int N, max_score, temp;
    cin >> N;
    int score[N];
    
    max_score = 0;
    double total = 0;
    
    for (int i=0; i<N; i++) {
        cin >> score[i];
        if (score[i] > max_score) {
            max_score = score[i];
        }
        total += score[i];
    }
    
    total = (total / max_score * 100) / N;
    
	cout << fixed;
	cout.precision(6);
	cout << total;
}

📌 해결방법

  1. 실수형으로 표현해야하기 때문에 total은 double 자료형으로 표현
  2. 각각의 점수에 / max_score * 100 을 한 것과 total / max_score * 100 은 같은 값!

💡 배운 점

- cin >> score[i]

  • 저번에 봤었는데 맨날 까먹어서 입력받은 값을 배열에 넣을때
int temp;
cin >> temp;
arr[i] = temp

이런식으로 작성했었음....

  • cin >> arr[i] 로 작성하는 거 까먹지 말자...

✔ 느낀 점

1차원배열 마스터하고 2차원으로 넘어가야지.. 갈길이 멀다....

profile
C++과 파이썬 공부중

1개의 댓글

comment-user-thumbnail
2023년 5월 10일

2차원 언제 오세요?
좀 지루하네여^^

답글 달기