문제 자체는 어렵지 않지만 출력 형식이 소수점을 포함한 퍼센테이지로 지정되어 있다.
int c = int.Parse(Console.ReadLine());
int[] scores;
double avg;
int cnt;
while (c-- > 0)
{
scores = Array.ConvertAll(Console.ReadLine().Split()[1..], int.Parse);
avg = scores.Average();
cnt = scores.Count(score => score > avg);
Console.WriteLine("{0:F3}%", (double)cnt / scores.Length * 100);
}
함수나 메소드들을 잘 활용하면 비교적 간결하고 직관적인 코드를 작성할 수 있다. 위 코드를 보면 메소드명만 봐도 무슨 작업을 하는지 바로 알 수 있다.
물론 원소들을 일일이 셈해도 상관없다. 오히려 그게 더 빠를 수도 있다.
다만 성능에 큰 차이가 없다면 가독성이 좋은 코드가 더 좋지 않을까 싶다.
(이 코드가 그렇다는 뜻은 아니다)
출력 형식에 관해서는 아래 문서를 읽어보자.
'백준 > 단계별' 카테고리의 다른 글
백준 11720 C#) 숫자의 합 (0) | 2022.04.21 |
---|---|
백준 4673 C#) 셀프 넘버 (0) | 2022.04.19 |
백준 2577 C#) 숫자의 개수 (0) | 2022.04.18 |
백준 10818 C#) 최소, 최대 (0) | 2022.04.18 |
백준 1110 C#) 더하기 사이클 (0) | 2022.04.18 |
댓글