Yo iria comprobando con un bucle si el numero total cabe en cada habitación.
A ver me explico
Para diez personas:
Personas > 0 , si, continuo
Si 10 es >= a la habitacion mas grande (6);
Si se cumple restaria el tamaño de la habitación al nº personas (10-6=4);
Y vuelvo a comprobar;
Personas > 0, si, continuo
Si 4 >=6; no se cumple, paso con la siguiente habitación;
Si 4>=4; se cumple, resto 4-4=0; y vuelvo a comenzar el bucle;
Personas > 0, no finalizo
Y asi sucesivamente para cualquier numero.
Espero me hayas entendido el concepto.
Para hacerlo puedes utilizar
while