Grading Students |HackerRank
Jul 16, 2024
Çözümü:
public static List<int> gradingStudents(List<int> grades)
{
return grades.Select(grade =>
{
int nextMultipleOfFive = (int)(Math.Ceiling(grade / 5.0) * 5);
return (nextMultipleOfFive - grade < 3 && grade >= 38) ? nextMultipleOfFive : grade;
}).ToList();
}
Bu fonksiyon, her notu gözden geçirir ve gerekli yuvarlamaları yapar. Açıklama olarak:
grades.Select(...)
: Her bir notu alır ve üzerinde işlem yapar.Math.Ceiling(grade / 5.0) * 5
: Bir sonraki 5'in katını bulur.(nextMultipleOfFive - grade < 3 && grade >= 38) ? nextMultipleOfFive : grade
: Eğer not, 38 veya daha büyükse ve bir sonraki 5'in katı ile arasındaki fark 3'ten küçükse, notu yuvarlar. Aksi takdirde orijinal notu geri döner.ToList()
: Sonucu listeye dönüştürür.