We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
staticint[]solve(int[]grades){// Complete this functionfor(inti=0;i<grades.length;i++){if(grades[i]>=38){if(grades[i]+(5-grades[i]%5)-grades[i]<3)grades[i]=(grades[i]+(5-grades[i]%5));}}returngrades;}
Your solution is perfectly fine but as a first draft. Whenever possible take out common operations and put it in a variable so next time what if the moderator said that multiple of 6 instead of 5 . you'll have to change at 2 places in your case but it may be a become bigger issue in complex chunk. Just saying. :)
(5 - grades[i] % 5) < 3 if this is the condition you are talking about then the question says that If the difference between the grade and the next multiple of 5 is less than 2.
Grading Students
You are viewing a single comment's thread. Return to all comments →
It works perfectly fine.
https://www.hackerrank.com/challenges/grading/submissions/code/39368045
In case of issues, let me know.
I have another solution for the same.
I did this with backward iteration and without your most inner If:
What's the point of the backwards iteration? It practically won't make any difference.
Yes it will! it will make the array go back wards and solution will be saved and appear in LIFO.
It is a stack implementation.
in your solution what happen if grade[i] = 67 them grades[i] % 5 = 7 and them 5-7 = -2 so 67 -2 = 65
No, it will not pass the second condition of the if statement. Because 67 % 5 = 2 not 7.
As @keickhoff1 pointed out 67 remains 67.
Your solution is perfectly fine but as a first draft. Whenever possible take out common operations and put it in a variable so next time what if the moderator said that multiple of 6 instead of 5 . you'll have to change at 2 places in your case but it may be a become bigger issue in complex chunk. Just saying. :)
very good, by the way it has to be grades.Length
in the inner if() , why did you do a grades[i] + blahBlahPivot - grades[i]? i mean, grades[i]-grades[i] is zero anyway so why bother?
this program have some error check your program
Your answer is nice.But why you put -grades[i]<3 in if condition can you explain it.
(5 - grades[i] % 5) < 3 if this is the condition you are talking about then the question says that If the difference between the grade and the next multiple of 5 is less than 2.
Your link doesn't work, like the code provided above