Proglib.academy | IT-курсы
3.74K subscribers
1.98K photos
64 videos
14 files
1.86K links
Онлайн-курсы для программистов от создателей «Библиотеки программиста».

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/9f60aed6

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
🤯🤯🤯 Задачка на IT тематику.

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

Входные данные:

Указанная сумма денег.

Массив со всеми доступными номиналами монет.

Нужно написать функцию, которая на выходе выдаст количество всех возможных способов получить указанную сумму денег при помощи различных доступных номиналов монет. Например, если вам нужно получить 4 цента из монет номиналами 1, 2 и 3 цента, то функция вернет 4 — именно столько есть возможных комбинаций из чисел 1, 2 и 3, чтобы получить в сумме 4:

1, 1, 1, 1.
1, 1, 2.
1, 3.
2, 2.
👍1
🤯🤯🤯 Задачка на IT тематику.

Задача про бесконечный поезд.

Представьте себе замкнутую по окружности железную дорогу. По ней едет поезд, последний вагон которого скреплён с первым так, что внутри можно свободно перемещаться между вагонами. Вы оказались в одном случайном вагоне и ваша задача — подсчитать их общее количество. В каждом вагоне можно включать или выключать свет, но начальное положение переключателей случайное и заранее неизвестно.

Все вагоны внутри выглядят строго одинаково, окна закрыты так, что невозможно посмотреть наружу, движение поезда равномерное. Помечать вагоны как-либо, кроме включения или выключения света, нельзя. Количество вагонов конечно (не верьте названию задачи).
👍1
⛔️⛔️⛔️ Переосмысление отслеживания ошибок и аналитики продукта

Нынешний подход к предоставлению отличного цифрового опыта не работает. Пришло время для нового решения.

Читать
🤯🤯🤯 Задачка на IT тематику.

Задача про слияние промежутков в календаре.

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

Те периоды, когда команда занята, на календаре отмечены как диапазоны времени, например, с 10:00 до 12:30 или с 12:30 до 13:00. В разрабатываемой программе промежуток времени представлен в виде кортежей из двух целых чисел. Число означает номер 30-минутного блока, который идет после 9:00 утра. Например, кортеж (2, 4) означает диапазон с 10:00 до 11:00, а (0, 1) — это промежуток 9:00-9:30.

Вам нужно написать функцию, которая должна упростить вывод информации таким образом, что если команда занята в промежутках с 10:00 до 12:30 и с 12:30 до 13:00, то это отображалось как 10:00?13:00. Например: на входе вашей функции неупорядоченный массив из кортежей [(0, 1), (3, 5), (4, 8), (10, 12), (9, 10)], а на выходе вы должны получить упорядоченный массив [(0, 1), (3, 8), (9, 12)].

В будущем планируется внести изменения в программу, где вместо 30-минутных блоков будут минутные, как это реализовано в представлении Unix-времени. С учетом этого изменения нужно, чтобы ваша функция уже сейчас могла работать с большими числами. Еще не забудьте, что кортеж — это такой тип данных, в котором содержимое переменной невозможно изменять после ее создания.
👍1
Алгоритмы в PHP: Deques (циклические буферы и связанные списки)

Читать
🎙🎙🎙 Подкаст на тему: Продуктивность разработчика

На продуктивность можно смотреть по-разному – через призму количества закрытых задач, достигнутых результатов, собственного wellbeing. В этом выпуске мы с Кириллом Мокевниным обсуждаем продуктивность владения инструментами разработки, достижение которой позволит вам увереннее входить в состояние потока и дольше в нем оставаться. Слепая печать, горячие клавиши, терминал, Vim и куча других способов оптимизировать свою рутину.

👉🏻 Яндекс-музыка
👉🏻 Apple-подкаст
👉🏻 Google-подкаст
👉🏻 SoundCloud
👉🏻 Castbox
🤓🤓🤓 Математики обнаружили, что числа Фибоначчи, скрываются в странных пространствах

Подробнее
🤯🤯🤯 Задачка на IT тематику.

Есть однонаправленный список из структур. В нём random указывает на какой-то еще элемент этого же списка. Требуется написать функцию, которая копирует этот список с сохранением структуры (т.е. если в старом списке random первой ноды указывал на 4-ю, в новом списке должно быть то же самое – рандом первой ноды указывает на 4-ю ноду нового списка). O(n), константная дополнительная память + память под элементы нового списка. Нельзя сразу выделить память под все данные одник куском т.е. список должен быть честным, разбросанным по частям, а не единым блоком, как массив.
🗣 Расширьте вашу команду безопасников без найма

➡️ Читать
Упростите неизменяемые структуры данных в useReducer с помощью Immer

➡️ Подробнее
PagerDuty и Data Ops: предоставление организациям возможности улучшить процесс принятия решений с помощью более качественных данных

➡️ Читать