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 |
댓글