반응형

 

안녕하세요 Jin's 입니다.

 

백준 알고리즘의 1차원 배열 마지막 문제인 평균은 넘겠지 ( 문제 번호 : 4344 )의 소스입니다.

 

 

Java와 Python 두가지 버전 소스입니다.

 

1) JAVA

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int testCase = Integer.parseInt(scan.nextLine());
		
		for(int i=0; i<testCase; i++){
			int student = scan.nextInt();
			int[] score = new int[student];
			int ave = 0;
			int cnt = 0;
			
			for(int j=0; j<student; j++){
				score[j] = scan.nextInt();
				ave += score[j];
			}
			ave = ave/student;
			
			for(int j=0; j<student; j++){
				if(score[j] > ave){
					cnt ++;
				}
			}
			System.out.printf("%.3f",(double)cnt/student*100);
			System.out.println("%");
		}
		scan.close();
	}
}

 

2) PYTHON

    * 리스트 자체로 for문을 돌려 for문의 j 값이 리스트안의 값이 바로 나올수 있도록 설정

      (이때 첫번째 학생수 제외하고 나오도록 [1:] 설정)

    * 소수점 이하 3자리 나오도록 %.3f 설정

    * 소수점 이하 3자리 반올림 round 지정

for i in range(int(input())):
    total = list(map(int, input().split()))
    ave = (sum(total)-total[0]) / total[0]
    cnt = 0
    for j in total[1:]:
        if j > ave:
            cnt += 1
    print(str('%.3f' % round(cnt / total[0] * 100, 3))+'%')

 

여러분도 한번 풀어보세요!

 

반응형

+ Recent posts