Given the grades of a student as an array, determine if the student has passed the class.
A Student has passed the class if the average of grades is 5 or more.
The average is defined as (grades[0] + grades[1] + ... + grades[n - 1]) / n
Example 1:
Input: grades = [4, 7, 5, 9, 8, 2]
Output: true
Explanation:
average = (4 + 7 + 5 + 9 + 8 + 2) / 6 =
= 35 / 6 = 5.833333333... >= 5
Example 2:
Input: grades = [4, 7, 5, 3, 8, 2]
Output: false
Explanation:
average = (4 + 7 + 5 + 3 + 8 + 2) / 6 =
= 29 / 6 = 4.83333.. < 5
The problem can be broken in 3 steps:
1. Compute the sum of the array
2. Compute the average by dividing the sum by the length of the array
3. Decide the result based on the average being greater than or equal to 5
Let's start with step 1: How can we compute the sum of the array?
First of all, we should store this sum somewhere as we compute it. That 'somewhere' is a variable, let's name it
sum.
We have to iterate through every element of grades and add its value to sum. How can we achieve this?
With a loop! Let's use a
for loop and a variable grade to iterate through the elements:
sum = 0
for each grade in grades:
sum += grade
When the loop terminates, we know the sum. What should we do next?
We should compute
average = sum / length and return average >= 5:
sum = 0
for each grade in grades:
sum += grade
average = sum / length
return average >= 5
We have a for loop that performs exactly
n iterations (n is the length of grades), thus the Time Complexity is O(n).The only extra space we use are the variables
sum, average and the iterator variable grade inside the loop, thus the Extra Space used is O(1).
Free plan: 30 tutor messages. Premium is unlimited.
Saved
Ctrl + Enter to check