I am trying to write a program to help scheduling shifts for the employees of a small business. There are 28 shifts that needs to be assigned to 28 employees (so this means that each person gets a shift per week). Each employee can provide a set of preferred shifts, so my idea was to procede as follows: 1) first assign the preferred shift to those employees that provided only one preference 2) after step #1, go back and assign each remaining shift to the first person whose preferences match said shift
Is this a smart way to approach this problem? If not, can you help me understand what is wrong and/or point me towards some literature that may help me with that?