모든 일상

C# 백준 2108번 문제 통계학 본문

코딩 공부/C#

C# 백준 2108번 문제 통계학

통통푸린 2023. 1. 10. 16:20
728x90
반응형

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int num = int.Parse(Console.ReadLine());
            int[] arr = new int[num];
            int[] score = new int[8001];                   // 절대값 4000 -> -4000 ~ 4000 까지
            List<int> list = new List<int>();
            int sum = 0;
            int min = int.MaxValue;
            int max = int.MinValue;

            for (int i = 0; i<num; i++)
            {
                arr[i] = int.Parse(Console.ReadLine());
                score[arr[i]+4000]++;
                sum += arr[i];

                if (min > arr[i]) min = arr[i];
                if (max < arr[i]) max = arr[i];
            }
            int Mode = score.Max();

            for (int i = 0; i < 8001; i++ )
            {
                if (score[i] == Mode) list.Add(i - 4000);
            }

            Array.Sort(arr);                                   // 오름차순 정렬

            Console.WriteLine(Convert.ToInt32(arr.Average())); // 평균값
            Console.WriteLine(arr[num/2]);                     // 중앙값

            if (list.Count > 1)                                
            {
                Console.WriteLine(list[1]);                    // 빈도수가 같으면 두번째로 작은 수
            }
            else
            {
                Console.WriteLine(list[0]);                    // 빈도수가 가장 높은 수
            }
            Console.WriteLine(max - min);
        }
    }
}

728x90
반응형