Я реализую алгоритм распределения команды в Ruby, и я дошел до того, что мне нужно реализовать функциональность, где, когда предоставляется список пар идентификаторов студентов, эти студенты должны быть сгруппированы вместе.
Какая структура наиболее эффективна для реализации этого?
Я думал о Ха sh, где ключ - это идентификатор студента, а значение - массив, содержащий все идентификаторы студентов. конкретный студент не может быть сгруппирован с. Например, если файл CSV имеет следующее содержимое:
3,4
3,6
3,8
4,7
4,1
5,2
Я хочу получить следующее: Ха sh:
{3=>[4,6,8], 4 =>[7,1], 5 =>[2]}
Однако я не могу придумать эффективный способ заполнить ха sh информацией из файла CSV. Файл имеет два значения в строке. Наиболее повторяющимся действием после этого будет проверка того, существует ли данный идентификатор в списках запрещенных партнеров для данного студента.