본문 바로가기
C#/백준 알고리즘

2022.01.19 [백준] C# 평균은 넘겠지

by ian's coding 2022. 1. 19.
728x90
반응형

문제

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

입력

첫째 줄에는 테스트 케이스의 개수 C가 주어진다.

둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.

출력

각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다.

예제 입력 1 복사

5
5 50 50 70 80 100
7 100 95 90 80 70 60 50
3 70 90 80
3 70 90 81
9 100 99 98 97 96 95 94 93 91

예제 출력 1 복사

40.000%
57.143%
33.333%
66.667%
55.556%
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
class AA{
    static void Main(){
        int n=int.Parse(Console.ReadLine());
        for(int i=0;i<n;i++){
            string[] s=Console.ReadLine().Split();
            int sum=0;
            int avg=0;
            int cnt=0;
            for(int j=1;j<s.Length;j++){
                sum+=int.Parse(s[j]);
            }
            avg=sum/int.Parse(s[0]);
            for(int k=1;k<s.Length;k++){
                if(int.Parse(s[k])>avg)
                    cnt++;
            }
            float result=(float)cnt/float.Parse(s[0])*100;
            Console.WriteLine($"{result:0.000}%");
        }
    }
}
cs

-정답코드

이 문제에서 총 20번의 도전 끝에 풀 수 있었다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
class AA{
    static void Main(){
        int n=int.Parse(Console.ReadLine());
        for(int i=0;i<n;i++){
            int sum=0;
            int avg=0;
            float count=0;
            string[] aa = Console.ReadLine().Split();
            int[] num = new int[int.Parse(aa[0])];
            for(int l=0;l<aa.Length;l++){
                num[l]=int.Parse(aa[l]);
            }
            for(int j=1;j<num.Length;j++){
                sum+=num[j];
            }
            avg=sum/num[0];
            for(int k=1;k<num.Length;k++){
                if(num[k]>avg)
                    count++
            }
            float avg2 = (count/(float)num[0])*100;
            Console.WriteLine("{0:0.000}%",avg2);
        }
    }
}
cs

-런타임 오류(IndexOutOfRange) 코드

 

위의 코드에서 왜 런타임 오류가 발생한지 모르겠다.... 수많은 런타임 오류가 떴고, 모든 코드를 지우고 새로 작성한 뒤 풀 수 있었다.......

 

 

 

728x90
반응형

'C# > 백준 알고리즘' 카테고리의 다른 글

2022.01.19 [백준] C# 평균  (0) 2022.01.19
2022.01.19 [백준] C# 기찍 N  (0) 2022.01.19
2022.01.18 [백준] C# 숫자의 개수  (0) 2022.01.18
2022.01.18 [백준] C# 빠른 A+B  (0) 2022.01.18
2022.01.18 [백준] C# N 찍기  (0) 2022.01.18

댓글