[백준 BOJ] 1546번 평균 (C언어)

2022. 1. 9. 15:49PS (Program Solving)/BOJ (백준)

문제 설명

https://www.acmicpc.net/problem/1546

 

1546번: 평균

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

www.acmicpc.net

백준 BOJ 1546번 평균 문제 사진
백준 BOJ 1546번 평균 문제 사진2

(자세한 예제는 위의 사이트를 통해 확인하길 바란다.)

 

접근 방법 - 문제의 설명대로 풀면 되는 수학 문제

백준의 1546번 문제는 문제의 설명만 잘 읽고 따라가면 무난하게 해결할 수 있는 문제이다.

다만, 예제들의 정답을 보면 소수점을 어디까지 출력해야 하는지 망설여질 것이다.

필자는 예제 2의 출력대로 소수점에 제한을 두지 않고 출력을 해보았는데 정답이 나왔다.

필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.

 

코드의 실행 순서

1) 과목수 입력받기

 

2) 각 과목 점수 하나씩 입력받으면서 과목 점수 최댓값 구하기

 

3) (문제에 나온 대로) 모든 과목 점수에 해당 연산을 수행하면서 총합 구하기

 

4) 총합(sum)을 과목 개수(n)로 나누어 평균 출력하기

반응형

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>

//백준 1546번 코드
double a[1000];
int main() {
	int n;
	scanf("%d", &n);
	int max = 0;
	for (int i = 0; i < n; i++) {
		scanf("%lf", &a[i]);
		if (max < a[i]) {
			max = a[i];
		}
	}

	double sum = 0;
	for (int i = 0; i < n; i++) {
		sum+= a[i] / max * 100;
	}
	printf("%f", sum / n);
}

 

제출 결과

백준 BOJ 1546번 평균 문제 C 제출 결과

(2021.12.17 백준 1546번 제출 결과)

반응형