Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def workbester(subjects,maxWork):
- """Within a given list of subjects, chooses the one with the
- least work whose work value is less than maxWork."""
- least_work = 1000
- best_subject = ""
- for subject in subjects:
- if subjects[subject][WORK] < least_work and subjects[subject][WORK] <= maxWork:
- least_work = subjects[subject][WORK]
- best_subject = subject
- if best_subject == "":
- best_subject = None
- return best_subject
- def greedyAdvisorWork(subjects, maxWork, greedy_dictionary):
- """Returns a dictionary of subjects chosen from "subjects" in order of least work."""
- remwork = maxWork
- if workbester(subjects, maxWork) == None:#1 if there are no possible subjects left, return what we have so far.
- return greedy_dictionary
- else:#if a subject is found, add it to the dictionary, then run again on a dictionary with that subject removed.
- greedy_dictionary[workbester(subjects, maxWork)] = subjects[workbester(subjects,maxWork)]
- subjectadded = workbester(subjects, maxWork)
- remwork -= subjects[workbester(subjects,maxWork)][WORK]
- return greedyAdvisorWork(deldict(subjects,subjectadded),remwork,greedy_dictionary)
Advertisement
Add Comment
Please, Sign In to add comment