Task 55. Квадраты
UniLecsЗадача: задан массив натуральных чисел, каждое значение это длина отрезка.
Необходимо выяснить какое наибольшее кол-во квадратов можно из них составить.
Сторона квадрата должна состоять только из одного отрезка.
Например,
[ 7, 7, 2, 7, 8, 7, 9, 7, 2 ]
Вывод: 1
Идея: воспользуемся хэш мапом (в C# я воспользуюсь структурой Dictionary<int, int>()), нам нужно подсчитать кол-во отрезков каждой длины. Ну и получаем Ki/4 квадратов по каждому отрезку длины i, где Ki - кол-во отрезков длины i.
Реализация:
https://gist.github.com/unilecs/3bf1ad6423b2123e0ee7cd0ed8c044e2
Тест: