Start learning free

LESSON 173 OF 677 · LOOPS & GLOBAL VARIABLES

Student Grades

Practice

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 = Array(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 = Array(4, 7, 5, 3, 8, 2)
Output: false
Explanation:
average = (4 + 7 + 5 + 3 + 8 + 2) / 6 =
= 29 / 6 = 4.83333.. < 5

Hints:

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 size 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:
var sum = 0f
for (grade <- grades) {
	sum += grade
}
When the loop terminates, we know the sum. What should we do next?

We should compute val average = sum / grades.size and return average >= 5:
var sum = 0f
for (grade <- grades) {
	sum += grade
}
val average = sum / grades.size
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).
STEP 1 OF 5
    Ctrl + Enter to check