Task 55. Квадраты

Task 55. Квадраты

UniLecs

Задача: задан массив натуральных чисел, каждое значение это длина отрезка. 

Необходимо выяснить какое наибольшее кол-во квадратов можно из них составить.

Сторона квадрата должна состоять только из одного отрезка.

Например,

[ 7, 7, 2, 7, 8, 7, 9, 7, 2 ]

Вывод: 1

Идея: воспользуемся хэш мапом (в C# я воспользуюсь структурой Dictionary<int, int>()), нам нужно подсчитать кол-во отрезков каждой длины. Ну и получаем Ki/4 квадратов по каждому отрезку длины i, где Ki - кол-во отрезков длины i.

Реализация:

реализация на C#

https://gist.github.com/unilecs/3bf1ad6423b2123e0ee7cd0ed8c044e2


Тест:

https://dotnetfiddle.net/hsRbk2

Report Page