728x90
반응형
🔗 문제 링크
https://www.acmicpc.net/problem/1546
1546번: 평균
첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보
www.acmicpc.net
👩💻 코드
#include <iostream>
using namespace std;
int main(){
int N = 0;
int scores[1000];
long sum = 0;
long max = 0;
cin >> N;
for (int i=0; i<N; i++){
cin >> scores[i];
}
for (int i=0; i<N; i++){
if(scores[i] > max){
max = scores[i];
}
sum += scores[i];
}
double average = sum * 100.0 / N / max;
cout << average;
}
✏️ 풀이
문제에 주어진 그대로 코드를 짰더니 두 군데에서 문제가 생겼다.
처음에 각각의 점수를 계산하였는데 수식을 풀면 더 간단하게 연산이 가능했다.
x / N * 100 + y / N * 100 + z / N * 100 = (x+y+z) * 100 / N
그리고 오차를 줄이기 위해 자료형을 재설정해야했다.
long과 double, 수식의 * 100.0
728x90
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
[백준] 2018번 : 수들의 합 5 (2) | 2024.02.29 |
---|---|
[백준] 10986번 : 나머지 합 (1) | 2024.02.09 |
[백준] 11660번 : 구간 합 구하기 5 (1) | 2024.02.06 |
[백준] 11659번 : 구간 합 구하기 4 (0) | 2024.02.01 |
[백준] 11720번 : 숫자의 합 (0) | 2024.02.01 |