본문 바로가기
백준

[백준] 단계별로 풀어보기(단계:5,1차원 배열,JAVA)1546번, 평균

by 열정적인 이찬형 2021. 12. 15.

문제 링크

1546번: 평균
 
www.acmicpc.net

주의사항

  • JAVA를 사용하여 프로그램을 사용하였습니다.
  • 백준에서 코드를 작성하였을 때 아래 형태에서 Main에서 결과가 출력되어야 합니다.
public class Main{ 	
	public static void main(String[] args){
    }
}

문제 설명


접근 방법

  • BufferedReader를 사용하여 입력값을 저장합니다.
  • 점수 개수를 받아서 그 크기만한 배열을 만들었습니다.
  • StringTokenizer를 사용하여 각 점수들을 배열에 저장하면서 최대값도 구하였습니다.
  • cal 함수를 통하여 배열에 있는 값들을 조작된 점수로 구하여 모두 더하였습니다.
  • 결과값을 System.out.println()을 사용하여 조작된 점수에 평균값을 출력하였습니다.

결과 코드

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));
        //입력 값을 받는 BufferedReader
        int index = Integer.parseInt(br.readLine());		//점수 개수
        String score = br.readLine();				//점수
        int max=-1;
        float sum=0;
        StringTokenizer st = new StringTokenizer(score," ");
        int[] arr = new int[index];
        for(int i=0;i<index;i++){				//점수들 배열에 저장 및 최대값 구하기
            int num = Integer.parseInt(st.nextToken());
            arr[i] = num;
            if(num>max){
                max = num;
            }
        }
        for(int i=0;i<index;i++){				//조작한 점수 모두 더하기
            float temp = cal(arr[i],max);
            sum+=temp;
        }
        System.out.println(sum/index);				//조작한 점수 평균값 출력
        br.close();
    }
    public static float cal(int score,int max){			//점수 조작하기 함수
        float result = (float)score/max * 100;
        return result;
    }
}

댓글