דצמ.19

פרילנסר אופטימלי - אלגוריטם לקבלת משכורת הכי גבוהה

פרילנסר אופטימלי - אלגוריטם לקבלת משכורת הכי גבוהה

מקבלים מערך : {"deadline": 1, "payment": 1}, {"deadline": 2, "payment": 1}, {"deadline": 2, "payment": 2} צריך למצוא איך לקבל הכי הרבה כסף, כאשר צריך לעמוד ב deadline

  1. public class Program {
  2. public int OptimalFreelancing(Dictionary<string, int>[] jobs) {
  3. int salary = 0;
  4. jobs = jobs.OrderByDescending(job => job["payment"]).ToArray();
  5. bool[] timeline = new bool[7];
  6. foreach(var job in jobs) {
  7. int maxTime = Math.Min(job["deadline"], 7);
  8. for(int time = maxTime - 1; time >=0; time--) {
  9. if(!timeline[time]) {
  10. timeline[time] = true;
  11. salary += job["payment"];
  12. break;
  13. }
  14. }
  15. }
  16. return salary;
  17. }
  18. }


תגיות:
שתף את הסיפור הזה:

תגובות(1)

  1. מריה
    לפני פחות משנה
    הערה חשובה: כל משימה ניתן לעשות ביום אחד!

השאירו תגובה

קפטצ'ה לא מתאימה

תגובה