문제 풀이/BAEKJOON
[백준/JAVA] 1546번. 평균
망고 ෆ
2021. 7. 31. 15:17
아직 BufferedReader를 사용하는 게 익숙하지 않아서 Scanner, BufferedReader를 이용해서 각각 풀어 보았다.
값 하나만 입력 받을 땐 상관없지만, 한 줄에 공백을 경계로 여러 값을 입력받기 위해서는 StringTokenizer를 사용해야 한다. BufferedReader를 이용해서 풀 때, 이 부분이 익숙하지 않아서 컴파일 에러가 많이 났던 것 같다.
문제
1546번: 평균
첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보
www.acmicpc.net
풀이 1
<Scanner 이용>
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
double[] score = new double[N];
double M = 0;
double sum = 0;
for(int i=0; i<N; i++) {
score[i] = sc.nextInt();
if(M<score[i]) {
M = score[i];
}
}
for(int i=0; i<N; i++) {
score[i] = score[i]/M*100;
sum = sum + score[i];
}
System.out.println(sum/N);
}
}
풀이 2
<BufferedReader 이용>
import java.io.*;
import java.util.StringTokenizer;
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());
double[] score = new double[N];
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
double M = 0;
double sum = 0;
for(int i=0; i<N; i++){
score[i] = Double.parseDouble(st.nextToken());
if(M<score[i]){
M = score[i];
}
}
for(int i=0; i<N; i++){
score[i] = score[i]/M*100;
sum = sum + score[i];
}
System.out.println(sum/N);
}
}