![Work Schedule Generator](https://d17mnqrx9pmt3e.cloudfront.net/media/logos/task/middle/work-schedule-gen-unsolved.png)
Work Schedule Generator
Ви отримуєте послідовність працівників з їхніми робочими вподобаннями та навичками. Також у вас є бізнес-потреби у вигляді необхідного робочого часу та завдань. Ваша функція повинна повернути розклад, який задовольняє бізнес-потреби при наявних працівниках (якщо це можливо). Тепер давайте зануримося в деталі.
staff це словник, де ключами є імена працівників, а значеннями - словники. Кожне значення словника включає три пари ключ-значення:
- "pref_shifts" - список рядків: зміни, працівник хоче працювати (може бути "first", "second" або обидва в такому порядку);
- "days_off" - список рядків: дні, у які працівник хоче бути вільним (повні назви днів тижня);
- "skills" - список рядків: роботи, які працівник може виконувати.
business_needs це список з трьох значень: день тижня, для якого потрібно скласти розклад - рядок; кількість змін у цей день - ціле число; завдання, які потрібно виконати у цей день - список з рядків.
Зауваження про зміни. Кожен працівник може працювати у першу зміну, другу або обидві (цілий день), за винятком своїх вихідних. Кількість змін для бізнесу означає кількість різних змін, які можуть бути присутніми в цей день. Наприклад, якщо кількість змін 3, то під неї може підпадати працівник, який працює повний день (обидві його зміни, "перша" і "друга", разом - 2), і ще один працівник (оскільки кожен працівник має принаймні одну зміну), або три зміни від різних працівників. Кількість змін має бути поділена порівну між "first" та "second" денними змінами. Якщо кількість змін непарна (і не дорівнює 1), то "first" денна зміна повинна включати на одну зміну більше, ніж "second" денна зміна.
Навички можуть бути частково/повністю однаковими для різних працівників. Тому, коли ви заповнюєте денні зміни, вибирайте працівників з меншою кількістю навичок - вони, як правило, менше оплачуються. Якщо кількість однакова - обирайте за іменами в алфавітному порядку. З точки зору залученості працівників, перша денна зміна має пріоритет: там важливіше мати працівників з меншою кількістю навичок. Завдання - це мінімальна послідовність, яку потрібно виконати - послідовність агрегованих навичок на цей день може бути ширшою. Кожне...
CheckiO Extensions allow you to use local files to solve missions. More info in a blog post.
In order to install CheckiO client you'll need installed Python (version at least 3.8)
Install CheckiO Client first:
pip3 install checkio_client
Configure your tool
checkio --domain=py config --key=
Sync solutions into your local folder
checkio sync
(in beta testing) Launch local server so your browser can use it and sync solution between local file end extension on the fly. (doesn't work for safari)
checkio serv -d
Alternatevly, you can install Chrome extension or FF addon
checkio install-plugin
checkio install-plugin --ff
checkio install-plugin --chromium
Read more here about other functionality that the checkio client provides. Feel free to submit an issue in case of any difficulties.
Welcome to Pair Programming! Engage in real-time collaboration on coding projects by starting a session and sharing the provided unique URL with friends or colleagues. This feature is perfect for joint project development, debugging, or learning new skills together. Simply click 'Start Session' to begin your collaborative coding journey!
You are trying to join a pair programming session that has not started yet.
Please wait for the session creator to join.
It looks like the creator of the pair programming session closed the editor window.
It might happen accidentally, so that you can wait for reconnection.