Problem Statement
We will assume that an average score of 90 or higher is rewarded with an A grade, 80 or higher (but less than 90) is a B, 70 or higher (but less than 80) is a C, 60 or higher (but less than 70) is a D. All test scores are integers between 0 and 100 inclusive and the average is NOT rounded -- for example an average of 89.99 does NOT get you an A.
Create a class Education that contains a method minimize that is given a
The desired grade will be given as a
Definition
- Class:
- Education
- Method:
- minimize
- Parameters:
- String, int[]
- Returns:
- int
- Method signature:
- int minimize(String desire, int[] tests)
- (be sure your method is public)
Constraints
- desire will be "A", "B", "C", or "D"
- tests will contain between 0 and 20 elements inclusive.
- Each element of tests will be between 0 and 100 inclusive.
Examples
"A"
{0,70}
Returns: -1
Even a perfect 100 on the last test will only produce an average score of 56.66 so it is not possible to earn an A.
"D"
{100,100,100,100,100,100}
Returns: 0
Nice scores! Even the worst possible score of 0 will give an average of 85.7 earning a B which satisfies your meager desire.
"B"
{80,80,80,73}
Returns: 87
An 87 added to these scores will just exactly improve your average from 78.25 to 80.
"B"
{80,80,80,73,79}
Returns: 88
"A"
{80}
Returns: 100
"B"
{69,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80}
Returns: 91
"C"
{69,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80}
Returns: 0
"C"
{}
Returns: 70
"D"
{100,100,100,100,0,19}
Returns: 1
"C"
{100,100,100,100,0,19}
Returns: 71
"D"
{100,100,100,100,0,20}
Returns: 0
"D"
{100,100,100,100,0,21}
Returns: 0
"D"
{0}
Returns: -1
"C"
{70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,70,71}
Returns: 69
"A"
{100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100}
Returns: 0
"C"
{82,80,91,70,70,70,70}
Returns: 27
"D"
{ 61, 61, 61, 61, 61, 61 }
Returns: 54
"A"
{ 79 }
Returns: -1
"D"
{ 100, 100, 100, 100, 100, 100 }
Returns: 0
"D"
{ 100, 100, 100, 100 }
Returns: 0
"A"
{ 80 }
Returns: 100
"A"
{ 90 }
Returns: 90
"A"
{ 90, 90, 90, 94 }
Returns: 86