#367
Schedule Optimiser
 

Difficulty:Medium
Topics:Real life cases List of Maps


Mission: "Schedule Optimizer" menugaskan elo untuk menyusun jadwal optimal dari list kegiatan. Setiap map dalam list mengandung :activity dan :time (dalam jam). Buatlah jadwal yang memungkinkan partisipasi maksimal dalam kegiatan dengan tidak ada kegiatan yang bersamaan. Return list kegiatan yang dipilih berdasarkan waktu awal mereka.
test not run
(= (__ [{:activity "A" :time 2} {:activity "B" :time 3} {:activity "C" :time 1}])
   ["C" "B"]) ; Memilih C (1 jam) lalu B (3 jam) karena A dan B bersamaan
test not run
(= (__ [{:activity "X" :time 4} {:activity "Y" :time 2} {:activity "Z" :time 2}])
   ["Y" "Z"]) ; Memilih Y dan Z karena totalnya 4 jam, sedangkan X sendirian 4 jam
test not run
(= (__ []) [])
test not run
(= (__ [{:activity "Study" :time 1} {:activity "Workout" :time 1} {:activity "Read" :time 1}])
   ["Study" "Workout" "Read"]) ; Semua aktivitas bisa dijadwalkan tanpa bersamaan


Code which fills in the blank: