본문 바로가기
백준/단계별

백준 4344 C#) 평균은 넘겠지

by alpacadabra 2022. 4. 18.

문제 자체는 어렵지 않지만 출력 형식이 소수점을 포함한 퍼센테이지로 지정되어 있다.

 

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);
}

 

함수나 메소드들을 잘 활용하면 비교적 간결하고 직관적인 코드를 작성할 수 있다. 위 코드를 보면 메소드명만 봐도 무슨 작업을 하는지 바로 알 수 있다.

물론 원소들을 일일이 셈해도 상관없다. 오히려 그게 더 빠를 수도 있다.

다만 성능에 큰 차이가 없다면 가독성이 좋은 코드가 더 좋지 않을까 싶다.

(이 코드가 그렇다는 뜻은 아니다)

 

출력 형식에 관해서는 아래 문서를 읽어보자.

 

 

표준 숫자 서식 문자열

이 문서에서는 .NET에서 표준 숫자 서식 문자열을 사용하여 일반적인 숫자 형식을 텍스트 표현으로 서식 지정하는 방법을 알아봅니다.

docs.microsoft.com

 

'백준 > 단계별' 카테고리의 다른 글

백준 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

댓글