Algorithm/백준 알고리즘
[백준 알고리즘 / JAVA] 1546번 평균
newtownboy
2024. 1. 4. 00:27
문제 정보
- 문제 링크: https://www.acmicpc.net/problem/1546
- 문제 번호: 1546번
- 문제 이름: 평균
- 문제 난이도: 브론즈1
- 반복 학습 날짜
- 2024.01.03 완료
1546번: 평균
첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보
www.acmicpc.net
코드
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
String[] sArray = br.readLine().split(" ");
int maxNumber = 0;
int[] nArray = new int[N];
for(int i = 0; i < N; i++) {
int convertNumber = Integer.parseInt(sArray[i]);
nArray[i] = convertNumber;
if(maxNumber < convertNumber) {
maxNumber = convertNumber;
}
}
float sumNumber = 0;
for(int i = 0; i < N; i++) {
float calcNumber = (float)nArray[i] / maxNumber * 100;
sumNumber += calcNumber;
}
System.out.println(sumNumber / N);
}
}
풀이
Step1: 최댓값 찾기 및 배열 초기화
int maxNumber = 0;
int[] nArray = new int[N];
for(int i = 0; i < N; i++) {
int convertNumber = Integer.parseInt(sArray[i]);
nArray[i] = convertNumber;
if(maxNumber < convertNumber) {
maxNumber = convertNumber;
}
}
- 주어진 정수 배열의 각 원소를 정수로 변환하여 "nArray"에 저장합니다.
- 동시에 최댓값을 찾아 "maxNumber"변수에 저장합니다.
Step2: 계산 및 합산
float sumNumber = 0;
for(int i = 0; i < N; i++) {
float calcNumber = (float)nArray[i] / maxNumber * 100;
sumNumber += calcNumber;
}
System.out.println(sumNumber / N);
- 문제에서 요구한 대로 각 원소를 최댓값으로 나눈 후 100을 곱하여 "calcNumber"에 저장합니다.
- "sumNumber"에 계산된 값인 "calcNumber"를 합산합니다.
- 평균값을 내기 위해 점수의 개수인 N을 나누어 결과를 출력합니다.