CSES - Kurssisuunnitelma

Tehtäväsi on toteuttaa luokka, jossa voi määritellä kurssien välisiä esitietovaatimuksia sekä etsiä tavan suorittaa kurssit vaatimusten mukaisessa järjestyksessä.

Toteuta luokka CoursePlan, jossa on seuraavat metodit:

  • add_course lisää annetun nimisen kurssin
  • add_requisite lisää esitietovaatimuksen
  • find_order etsii jonkin tavan suorittaa kurssit ja palauttaa järjestyksen listana (jos mitään tapaa ei ole, metodi palauttaa None)

Toteuta luokka tiedostoon courseplan.py seuraavan esimerkin mukaisesti.

class CoursePlan:
    def __init__(self):
        # TODO

    def add_course(self, course):
        # TODO

    def add_requisite(self, course1, course2):
        # TODO

    def find_order(self):
        # TODO

if __name__ == "__main__":
    c = CoursePlan()
    c.add_course("Ohpe")
    c.add_course("Ohja")
    c.add_course("Tira")
    c.add_course("Jym")
    c.add_requisite("Ohpe", "Ohja")
    c.add_requisite("Ohja", "Tira")
    c.add_requisite("Jym", "Tira")
    print(c.find_order()) # esim. [Ohpe, Jym, Ohja, Tira]
    c.add_requisite("Tira", "Tira")
    print(c.find_order()) # None