본문 바로가기
프로그래밍/백준 알고리즘 코드

백준 1546번 java 평균 (배열)

by 졸린이 2020. 9. 7.
반응형

백준 1546번 java 평균 (배열)

간단하다 세준이의 모든 점수를 배열에 저장하고 가장 큰 값을 찾은 후 배열의 모든 원소를 수식에 대입해서 값을 변경하면 끝난다.

 

배열원소/최대값*100 이 수식대로 하면 끝난다. 아 그리고 새로운 점수를 바탕으로 평균출력까지

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
import java.util.Scanner;
 
//baekjoon_1546
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        double ar[] = new double[n];
        
        int max = 0;
        double sum=0, maxScore;
        for(int i=0; i<ar.length; i++) {
            ar[i] = sc.nextInt();
            if(ar[max] < ar[i])
                max = i;
        }
 
        maxScore = ar[max];
        for(int i=0; i<ar.length; i++) {
            ar[i] = ar[i]/maxScore*100;
            sum += ar[i];
        }
        System.out.println(sum/n);
    }
}
cs

line 8 : double로 배열 선언한 것은 나중에 나누고~곱하고 하다보면 소수가 생기기 때문

line 10 : 가장 큰 값을 가진 위치를 저장해 놓는 변수.

line 11 : 평균값을 구할 총값, 최대값 변수 선언.

line 12~16 : 먼저 배열 길이만큼 (.length) for문을 돌려서 우선 배열 원소를 초기화한다.

if문으로 배열 원소를 각각 비교하여 가장 큰 값을 가진 위치를 max에 저장한다.

line 18 : maxScore변수에 최댓값을 옮긴다. (그냥 ar[max]를 최댓값으로 사용할 경우 뒤에 나누고 곱하는 수식에서 값이 바뀌게 때문)

line 19 ~22 : 배열 크기만큼 반복하여 배열 전체를 점수/최대점수*100 수식으로 값을 변경한다.

sum 변수에 바뀐값들을 더해 간다.

line 23 : 이제 새로운 평균값을 출력해준다.

 

끝이당.

반응형

댓글