#364
The Enrollment Enigma
Difficulty: | Easy |
Topics: | Real life cases List of Maps |
Mission: "The Enrollment Enigma" menantang elo untuk merancang sebuah sistem yang dapat menentukan kapasitas kelas berdasarkan preferensi dan prioritas pendaftaran siswa. Diberikan sebuah list of maps yang berisi :student-id, :name, dan list :preferences yang berisi ID kelas yang diminati (berurutan dari yang paling diinginkan ke yang kurang diinginkan), serta sebuah map :class-capacity yang menghubungkan ID kelas dengan kapasitas maksimalnya, tugas elo adalah untuk mengalokasikan siswa ke dalam kelas sesuai dengan preferensi mereka sambil memperhatikan kapasitas kelas. Return sebuah map yang menghubungkan :class-id dengan list :student-ids yang dialokasikan ke kelas tersebut.
(= (__ [{:student-id 1 :name "Alice" :preferences [101 102]} {:student-id 2 :name "Bob" :preferences [102 103]} {:student-id 3 :name "Charlie" :preferences [102 101]}] {:class-capacity {101 2, 102 1, 103 1}}) {101 [1], 102 [2], 103 [3]}) | |
(= (__ [{:student-id 1 :name "Alice" :preferences [102 103]} {:student-id 2 :name "Bob" :preferences [102 101]} {:student-id 3 :name "Charlie" :preferences [101 102]} {:student-id 4 :name "Dana" :preferences [101 103]}] {:class-capacity {101 2, 102 2, 103 1}}) {101 [3 4], 102 [1 2], 103 []}) | |
(= (__ [{:student-id 1 :name "Eve" :preferences [104 105]} {:student-id 2 :name "Frank" :preferences [105 104]}] {:class-capacity {104 1, 105 1}}) {104 [1], 105 [2]}) | |
(= (__ [] {:class-capacity {101 1, 102 1}}) {}) |