코테/백준

[백준/JAVA] 1546번: 평균

imname1am 2023. 3. 8. 14:24
반응형

🔺 문제

 

1546번: 평균

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

www.acmicpc.net

 

🔺 코드

import java.util.*;

public class Main {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		
		long sum = 0;
		long max = 0;
		
		for(int i=0 ; i < N ; i++) {
		    int tmp = sc.nextInt();
		    
		    if(tmp > max) max = tmp;
		    sum += tmp;
		}
		
		System.out.println(sum * 100.0 / max / N);
	}
}

- 합과 최댓값 변수를 long형으로 설정해주어야 한다.

- 마지막 출력에서 100.0을 써서 알아서 double로 형 변환하게 한다.

 

 

(+ 6/7 2회독)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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));
        StringTokenizer st;
        
        int N = Integer.parseInt(br.readLine());
        double[] arr = new double[N];
        
        st = new StringTokenizer(br.readLine(), " ");
        double max = 0;
        for(int i = 0 ; i < N ; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
            max = Math.max(max, arr[i]);
        }
        
        // 점수 바꾸고, 더하기
        double sum = 0;
        for(int i = 0 ; i < N ; i++) {
            arr[i] = arr[i] / max * 100;
            sum += arr[i];
        }
        
        System.out.println(sum / N);
    }
}
cs

입력받자마자 최대 점수 구하고, 합 더하고

마지막 한 번에 sum / max * 100 / N 해도 결과는 같더라...

 


(참고)

 

반응형