Work Schedule Generator

Work Schedule Generator

Moderate+

example

Ви отримуєте послідовність працівників з їхніми робочими вподобаннями та навичками. Також у вас є бізнес-потреби у вигляді необхідного робочого часу та завдань. Ваша функція повинна повернути розклад, який задовольняє бізнес-потреби при наявних працівниках (якщо це можливо). Тепер давайте зануримося в деталі.

staff це словник, де ключами є імена працівників, а значеннями - словники. Кожне значення словника включає три пари ключ-значення:

  • "pref_shifts" - список рядків: зміни, працівник хоче працювати (може бути "first", "second" або обидва в такому порядку);
  • "days_off" - список рядків: дні, у які працівник хоче бути вільним (повні назви днів тижня);
  • "skills" - список рядків: роботи, які працівник може виконувати.

business_needs це список з трьох значень: день тижня, для якого потрібно скласти розклад - рядок; кількість змін у цей день - ціле число; завдання, які потрібно виконати у цей день - список з рядків.

Зауваження про зміни. Кожен працівник може працювати у першу зміну, другу або обидві (цілий день), за винятком своїх вихідних. Кількість змін для бізнесу означає кількість різних змін, які можуть бути присутніми в цей день. Наприклад, якщо кількість змін 3, то під неї може підпадати працівник, який працює повний день (обидві його зміни, "перша" і "друга", разом - 2), і ще один працівник (оскільки кожен працівник має принаймні одну зміну), або три зміни від різних працівників. Кількість змін має бути поділена порівну між "first" та "second" денними змінами. Якщо кількість змін непарна (і не дорівнює 1), то "first" денна зміна повинна включати на одну зміну більше, ніж "second" денна зміна.

Навички можуть бути частково/повністю однаковими для різних працівників. Тому, коли ви заповнюєте денні зміни, вибирайте працівників з меншою кількістю навичок - вони, як правило, менше оплачуються. Якщо кількість однакова - обирайте за іменами в алфавітному порядку. З точки зору залученості працівників, перша денна зміна має пріоритет: там важливіше мати працівників з меншою кількістю навичок. Завдання - це мінімальна послідовність, яку потрібно виконати - послідовність агрегованих навичок на цей день може бути ширшою. Кожне...

You should be an authorized user in order to see the full description and start solving this mission.
Settings
Code:
Other:
Invalid hot key. Each hot key should be unique and valid
Hot keys:
CheckiO Extensions

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.

Pair Programming (Beta-version)

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!

Waiting for Pair Programming to start...

You are trying to join a pair programming session that has not started yet.

Please wait for the session creator to join.

Waiting for Pair Programming to reconnect...

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.

×
 
 
<< <
> >>
exec show

Whats Next?

Free accounts will see Best CheckiO solutions with some delay.
Best Solutions will be opened in a moment
Become Awesome and Don't wait
The next stage is ""
Will be activated in
View More Solutions Random Review Solutions Go to the next mission