CloudCoder Python feladatgyujtemeny/foglalas

A MathWikiből
A lap korábbi változatát látod, amilyen Csirke (vitalap | szerkesztései) 2015. szeptember 11., 05:28-kor történt szerkesztése után volt.
(eltér) ←Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

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!")
Személyes eszközök