백준 1546번 문제 : 평균 (BufferedReader, StringTokenizer) 사용

728x90

www.acmicpc.net/problem/1546

 

1546번: 평균

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

www.acmicpc.net


import java.util.*;
import java.io.*;
class Main{
  public static void main(String args[]) throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int num = Integer.parseInt(br.readLine());
    Double nums[] = new Double[num];
    StringTokenizer st = new StringTokenizer(br.readLine());
    br.close();
    for(int i=0; i<num; i++){
      nums[i] = Double.parseDouble(st.nextToken());
    }
    Double max=0.0;
    for(int i=0; i<num; i++){
      if(nums[i]>max){
        max = nums[i];
      }
    }
    Double sum=0.0;
    for(int i=0; i<num; i++){
      sum+=nums[i]/max*100;
    }
    Double avg=sum/num;
    System.out.println(avg);
    }
}

 

입력은 Buffer를 사용하여 입력 받음.

 

StringTokenizer를 사용해 공백(" ")을 기준으로 잘라 Token에 저장해서 사용.

 

배열 nums에 Token으로 자른 값을 할당.

 

배열에 할당된 값들을 반복문을 통해 max 값을 구함.

 

다시 반복문을 통해 배열값을 계산법(점수/최대값*100)을 하여 sum 변수에 할당.

 

마지막으로 평균을 구함.

 

반응형