Write a method whoPassed
that determines which students "passed" a course. The method accepts three parameters: A students
map from students' names (strings) to their overall percentages (integers) in the course; a grades
map from percentages (integers) to course grades out of 4.0 (real numbers); and a minGrade
real number representing the minimum grade out of 4.0 required to pass. Your method should return a set containing the names of all students who earned at least the given minimum grade out of 4.0 (inclusive) For example, if your method is passed the following three parameters:
students = {Marty=76, Daniel=81, Alyssa=98, Kim=52, Lisa=87, Whitaker=43, Jeff=70, Sylvia=92}
grades = {76=2.1, 81=2.6, 98=4.0, 52=0.0, 87=3.3, 43=0.0, 70=1.5, 92=3.7}
minGrade = 2.6
Then your method should return the following set of names, because Alyssa's percentage of 98 earns her a grade of 4.0 in the course, Daniel's 81 earns him a 2.6, Lisa's 87 earns her a 3.3, and Sylvia's 92 earns her a 3.7:
[Alyssa, Daniel, Lisa, Sylvia]
The names can be in any order in the set. If no students meet the desired minimum grade, return an empty set. You may assume that no parameter is null
, that every student's percentage is between 0 and 100 inclusive, that the grades
map contains a grade entry between 0.0 and 4.0 inclusive for every percentage earned by a student, and that the minGrade parameter is between 0.0 and 4.0 inclusive. For full credit your code must run in less than O(n2) time where n is the number of students and/or percentages.