최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다.
정수 배열array
가 매개변수로 주어질 때, 최빈값을return
하도록
solution
함수를 완성해보세요.
최빈값이 여러 개면 -1을return
합니다.
public class ModeFinder
{
public static int Solution(int[] array)
{
Dictionary<int, int> modes = new Dictionary<int, int>();
foreach (var value in array)
{
if (!modes.TryAdd(value, 1))
modes[value]++;
}
int maxValue = modes.Values.Max();
int[] result = modes.Where(pair => pair.Value == maxValue)
.Select(pair => pair.Key).ToArray();
if (result.Length > 1)
return -1;
return result.First();
}
}
Dictionary<int, int>
를 통해 관리할 수 있도록 하였다.maxValue
에 저장maxValue
와 같은 빈도를 가지는 Key
를 배열로 반환