while working with hacker-rank problem-solving challenge, I just stuck in question of finding the results according to given criteria.
Criteria:
1) Find the next number from given input that is divisible by 5.
i-e => Input is 73 so the number will be 75
2) Find the difference between actual input and the discovered.
i-e => 73 -75
3) If the difference between them is smaller than 3 then the
student will be awarded a discovered number as a grade else it
will remain the same as input
i-e 1) Input 73 - 75 = 2 //difference is less than 3 So, Grade will be 75 here 2) Input 67 - 70 = 3 // difference is less than 3 So, Grade will be 67 here
4) If input is 33 or less then simply return it no need for any
processing
Solution:
function gradingStudents(grades) { let final = []; for (let b = 0; b < grades.length; b++) { let base = parseInt(grades[b]); let val = parseInt(grades[b]); if (base < 38) { final.push(base); } else { for (let a = 0; a < 5; a++) { if (val % 5 == 0) { if (val - base < 3) { final.push(val); break; } else { final.push(base); break; } } else { val++; } } } } return final }
Hope you find this helpful or if there is any optimize method of solving this kindly recommend in a comment section.
Thanks.
Top comments (0)