CloudCoder Python feladatgyujtemeny/foglalas
A MathWikiből
Itt az összes feladat együttes megoldása:
class Foglalas(object): def __init__(self, nev, helyek): self.nev = nev self.helyek = helyek def nem_foglalt(self, lehetosegek): return [lehetoseg for lehetoseg in lehetosegek if lehetoseg not in self.helyek] def valtoztatas(self, uj_helyek): self.helyek = uj_helyek def szabad(foglalasok, osszes_ules): ulesek = osszes_ules for foglalas in foglalasok: ulesek = foglalas.nem_foglalt(ulesek) return ulesek def foglal(foglalasok, osszes_ules, nev, darab): szabadok = szabad(foglalasok, osszes_ules) helyek = [] for ules in osszes_ules: if ules in szabadok: helyek.append(ules) if len(helyek) >= darab: return Foglalas(nev, helyek) else: helyek = [] raise RuntimeError("Nincs eleg ules!")