// 최빈값(MODE): 가장 많이 나타난 값
// -> 데이터의 인덱스(0점~100점)의 카운트(COUNT)값의 최대값(MAX)
using System;

public class 최빈값
{
    public static void Main()
    {
        //[1] Input : 범위 : 0부터 100점까지의 점수만 들어온다고 가정
        int[] score = {1, 3, 4, 3, 5}; // 0~5까지만 들어온다고 가정
        int mode = 0; // 최빈값이 담길 그릇
        int[] index = new int[5 + 1]; // 0점부터 5점까지 : 인덱스의 카운터를 구하기 위해서
        int max = Int32.MinValue;
        //[2] Process
        for (int i = 0; i < score.Length; i++)
        {
            index[score[i]]++; // COUNT
        }
        for (int i = 0; i < index.Length; i++)
        {
            if (index[i] > max)
            {
                max = index[i]; // MAX
                mode = i; // MODE
            }
        }

        //[3] Output
        Console.WriteLine("최빈값 : {0} , {1}번", mode, max); // 3, 2
    }
}

'.NET프로그래밍 > C# 3.5 SP1' 카테고리의 다른 글

30. 스트링(string)클래스  (0) 2009.08.07
알고리즘 - 수열예제  (0) 2009.08.06
알고리즘 - 6. 가까운값(NEAR)  (0) 2009.08.06
29. 구조체를 이용한 카운트 알고리즘  (0) 2009.08.06
28. 열거형  (0) 2009.08.06
Posted by holland14
: