Помогите Саше перестать прокрастинировать: решаем задачу и считаем реальное количество рабочего времени

qj4w2oob6wegcektcndhuwbn4ag.png


Вам знакома ситуация, когда начинаешь работу, но не можешь сконцентрироваться на задачах? Это нормально, делать перерывы важно. Но когда они отнимают много времени, это может быть признаком прокрастинации. Для всех, кто работает с кодом, мы составили задачу — она поможет понять, сколько дел действительно выполняются в рабочее время, а какие привычки «съедают» его. Подробнее — под катом.

Мы запустили в Академии Selectel новую рубрику — задачи для программистов. Совсем скоро в ней появятся задачи на знание алгоритмов, логики, сетей и языков программирования.


Введение


Саша — начинающий IT-специалист. Еще в университете пошел на стажировку, а теперь работает фултайм в крупной компании. Количество задач и зоны ответственности увеличились, но молодой человек еще не адаптировался к полной нагрузке и не всегда может грамотно управлять своим временем. В результате Саша регулярно отвлекается на чаты и прогулки до кофепоинта, не успевая выполнить все задачи.


Чтобы решить эту проблему, он подошел к задаче системно: в течение двух недель отслеживал, чем занимается в рабочие часы. Оказалось, что есть три «пожирателя» времени: переписки в чатах, социальные сети и непродуктивные рабочие встречи — созвоны по вопросам, которые можно быстрее решить текстом в чатах.

Саша хочет дополнительно проанализировать данные и выяснить, сколько часов в день в среднем прокрастинирует, какое было максимальное и минимальное время прокрастинации и медианное значение.

Условие


Сотрудник зафиксировал данные за каждый день в формате «hh: mm: ss», где «hh», «mm», «ss» — это часы, минуты и секунды прокрастинации. Это положительное или нулевое число, состоящее из двух цифр.

Пример: 02:33:17, 01:26:49, 03:05:43.

Для аналитики Саше нужны три значения в исходном формате «hh: mm: ss»:

  • Среднее время прокрастинации за две недели: чтобы вычислить среднее значение, сложите все числа, а затем разделите сумму на общее количество чисел.
  • Минимальное и максимальное время прокрастинации: самое низкое и самое высокое значения. Посчитайте все данные в секундах и выявите минимальное и максимальное время.
  • Медианное значение: число, отделяющее верхнюю половину выборки данных от нижней. Чтобы определить медиану, расположите все данные в порядке возрастания и определите среднее при нечетном количестве наблюдений (например, медиана {3, 3, 5, 9, 11} равна 5) или среднее двух средних значений при четном числе (медиана {3, 5, 6, 9} равна (5 + 6) ÷ 2 = 5,5).


Пример:

  • Среднее время прокрастинации: 01:35:17
  • Минимальное время прокрастинации: 00:37:49
  • Максимальное время прокрастинации: 2:45:28
  • Медианное время прокрастинации: 2:23:51


Данные:

Задача


Ваша задача — вернуть строки, содержащие четыре искомых значения.

Проверьте свое решение или подсмотрите ответ в Академии Selectel.


waxbhrv04mztlfwbyrhqwp2-bbk.png

© Habrahabr.ru