백준 알고리즘/1차원 배열

[JAVA 자바] 백준 1546번 : 평균

Sun720 2022. 5. 27. 23:29

▶ 문제

https://www.acmicpc.net/problem/1546

 

1546번: 평균

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

www.acmicpc.net

 설명

점수들을 배열로 입력 받은 후 평균을 구하는 문제이다. 

 

문제 풀이

🌱 풀이1.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int arrLength = Integer.parseInt(br.readLine());
		
		float[] arr = new float[arrLength];
		StringTokenizer strTo = new StringTokenizer(br.readLine(), " ");
		
		for (int i=0; i<arr.length; i++) {
			arr[i] = Integer.parseInt(strTo.nextToken());
		}
		
		float max = 0, sum = 0, avg = 0;

		for (int i = 0; i < arr.length; i++) {
			if (max < arr[i]) {
				max = arr[i];
			}
		}

		for (int i = 0; i < arr.length; i++) {
			float divide = arr[i] / max;
			
			arr[i] = (arr[i] / max) * 100;
			sum += arr[i];
		}
		avg = sum / arr.length;
		System.out.println(avg);		
	}
}

 

 

Log

int 형과 int형이 만나 나눗셈을 할 때 실수형이여도 결과는 정수로 나온다. 그러므로 애초에 float이나 double 형으로 연산을 해주어야 한다. 

728x90
반응형