개발 공부/코딩 문제풀이
[java] 백준 - 1546 평균 (do it 알고리즘 002)
구운오니
2022. 7. 22. 00:52
728x90
처음 짠 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class doit_002 {
public static void main (String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] arr = new int[n];
String a = br.readLine();
StringTokenizer st = new StringTokenizer(a," ");
int max = 0;
float sum = 0;
for(int i = 0; i<n; i++){
arr[i] = Integer.parseInt(st.nextToken());
if(max < arr[i]) max = arr[i];
}
for(int i = 0; i<n; i++){
sum += ((float)arr[i]/max)*100;
}
System.out.println(sum/n);
}
}
!! [점수/M * 100 ] 과정을 일일이 해주는게 아니라 마지막에 다 더해서 한 번에 계산해주면 더 간단해진다!!
수정한 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class doit_002 {
public static void main (String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[] arr = new int[n];
String a = br.readLine();
StringTokenizer st = new StringTokenizer(a," ");
int max = 0;
float sum = 0;
//총합에 변환 과정을 넣어주면 한 번에 가능 //do it 교재 39p
for(int i = 0; i<n; i++){
arr[i] = Integer.parseInt(st.nextToken());
if(max < arr[i]) max = arr[i];
sum += arr[i];
}
System.out.println(((float)sum/max*100)/n);
}
}
728x90