본문 바로가기

Projects/백준 문제

백준 1546번 자바 평균

반응형

 

 

 

import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
	
		Scanner sc = new Scanner(System.in);
		double arr[] = new double[sc.nextInt()];
				
		for(int i = 0; i < arr.length;i++) {
			arr[i] = sc.nextDouble();
			
		}
		sc.close();
		
		double sum = 0;
		Arrays.sort(arr);
		
		for(int i = 0; i < arr.length;i++) {
			sum += ((arr[i]/arr[arr.length-1]) * 100);
			
		}
		System.out.println(sum/arr.length);
		
}
}

 

문제의 답이 계속 다르게 나와서, 각 줄마다 sysout으로 디버깅을 해보니, 두 번째 for문의 계산식에서 계속해서 답이 잘못나오고 있었다.

 

아직 내 방식대로는 풀지 못했다.

 

package bj1546;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
	
		Scanner sc = new Scanner(System.in);
		ArrayList<Integer> Score = new ArrayList<Integer>();
		ArrayList<Integer> newScore = new ArrayList<Integer>();
		
		
		int N = sc.nextInt();
		
		
		
		int sumScore = 0;
		
		for(int i=0;i<3;i++) {
			int A = sc.nextInt();
			Score.add(A);
			
			
			}
		
		int max = Collections.max(Score);
	
	
		
		for (int i=0;i<3;i++) {
			int A = Score.get(i)/max*100;
			newScore.add(A);
			System.out.println(Score.get(i));
			System.out.println(newScore.get(i));
		}
		
		System.out.println(newScore);
	
		for (int i=0;i<3;i++) {
			sumScore += newScore.get(i); 
	}
		
		
		System.out.println(Double.valueOf(sumScore)/3);
		
}
}

 

 

 

반응형