[자료구조] 평균 구하기 / 백준 1546
2024. 6. 16. 15:01ㆍ- 알고리즘/개인공부
문제
https://www.acmicpc.net/problem/1546
풀이
최고점 M 으로 나눈후 100을 곱한값의 평균값을 구하는 방식으로 다음과 같이 나타낼수 있습니다.
- 변환 점수의 평균을 구하는 식 (점수가 a,b,c인 경우)
(a / M * 100 + b / M * 100 + c / M * 100) / 3
위의 식은 다시 아래와 같이 최소화 할수 있습니다.
( a + b + c ) * 100 / M / 3
그냥 연산을 편리하게 하기 위해 최소화 한거지만 처음 식대로 알고리즘을 짜도 문제는 없습니다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Scanner;
class Main { // 백준 제출할때는 class Main으로 변경하여 제출 해야함
public static void main(String[] args) {
try {
// Scanner 사용
Scanner sc = new Scanner(System.in);
int N = sc.nextInt(); // 과목수
int A[] = new int[N]; // 과목수길이 배열 생성
for (int i = 0; i < N; i++) {
A[i] = sc.nextInt();
}
long sum = 0;
long M = 0;
for (int i = 0; i < N; i++) {
if (A[i]>M) M = A[i]; // 배열중 가장
sum += A[i];
}
System.out.println(sum*100.0/M/N);
} catch (Exception e) {
e.printStackTrace();
}
}
}
'- 알고리즘 > 개인공부' 카테고리의 다른 글
스택과 큐 (0) | 2024.07.11 |
---|---|
[슬라이딩 윈도우] DNA 비밀번호 / 백준 12891 (0) | 2024.06.22 |
연속된 자연수의 합구하기 [투포인터] / 백준 2018 (0) | 2024.06.19 |
[자료구조] 구간 합 (0) | 2024.06.17 |
시간복잡도 정리 (0) | 2023.11.08 |