Найти тему
32 подписчика

Решение задачи "Хотим посидеть"



Приведу свое решение этой задачи. Очень важно понимать, что любую задачу можно решить несколькими способами. В том числе и эту.

Приведу первое мое решение этой задачи с помощью списков (List). В решении я добавил свои комментарии, которые объясняют идею решения.

Решение задачи👇
static List<string> GetDaysStatistics(List<string> friendWeekdays)
{
// Получаем список всех выходных дней независимо от человека
List<string> weekdays = [];
foreach (var item in friendWeekdays)
{
weekdays.AddRange(item.Split());
}

// Создаем два параллельных списка: дни и количества человек, которые готовы "посидеть" в определенный день
// days[i] готово "посидеть" daysCount[i] человек
List<string> days = [
"понедельник",
"вторник",
"среда",
"четверг",
"пятница",
"суббота",
"воскресенье"
];

List<int> daysCount = [0, 0, 0, 0, 0, 0, 0];

// Подсчитываем daysCount
foreach (var item in weekdays)
{
int index = days.IndexOf(item);
daysCount[index] += 1;
}

// Формируем ответ, выбрасывая те дни в которых никто не может "посидеть"
List<string> daysStatistics = [];
for (int i = 0; i < days.Count; i++)
{
if (daysCount[i] > 0)
{
daysStatistics.Add(days[i] + " " + daysCount[i]);
}
}

return daysStatistics;
}

Сегодня в 18 часов по мск я расскажу про другие способы решения данной задачи. А также разберем еще пару интересных задач, чтобы понять что значит знать структуры данных.

Приходите разбирать задачи😍

#разбор_задач
1 минута