본문 바로가기
Algorithm

[구현/수학] 백준 1546 평균 - Python, Java

by jangThang 2022. 1. 24.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    1546번: 평균

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

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     자신이 받은 최고점을 '만점'으로 두고 평균을 계산하는 문제입니다.

     

     

    2022.01.19 - [Algorithm] - [Algorithm] 단골 1번 문제, 구현 / 수학

     

    [Algorithm] 단골 1번 문제, 구현 / 수학

    1. 구현  단순히 '구현'만 하면 되는 문제 유형입니다. 문제를 이해하고 입력에 맞춰 적절한 출력만 하면 됩니다. 특별한 알고리즘이나 프로그래밍적 기법 없이, 단순 제어문만 사용하여 해결할

    star7sss.tistory.com

     문제를 잘못 해석하면 난감한 문제입니다. 문제에서 예로 71.43점이 나오는데, 이는 평균이 아니라 변환된 수학 점수입니다. 문제에서 구해야하는 답은 '변환된 평균'입니다.

     

     

     

    3. 코드

    n = int(input())
    score = list(map(int, input().split()))
    print( sum(score)/max(score)/n*100 )

      만점 대신, Max score로 나누어서 평균을 구합니다.

     

     

    import java.util.Scanner;
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		
    		double max = 0;
    		double sum = 0;
    		int N = sc.nextInt();
    		int[] score = new int[N];
    		
    		for(int i = 0; i < N; i++) {
    			score[i] = sc.nextInt();
    			sum += score[i];
    			if(max <= score[i])
    				max = score[i];
    		}
    		double average = (sum/N)/max*100;
    		System.out.println(average);
    	}
    }

     Java로 풀 경우에는 코드가 조금 길어질 수도 있었습니다. 반면 파이썬은 리스트에서 sum, max 연산을 지원해주므로 간단하게 풀 수 있습니다.

     

     

     

    반응형

    댓글