Latihan 1 dari materi Topological Sort di Algoritma — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi function packageInstallOrder(packages, deps) supaya mengembalikan urutan pemasangan package yang benar.
packages adalah array nama package.
deps adalah array pasangan [dependency, dependent]: dependent butuh dependency dipasang lebih dulu.
Kembalikan array nama package dalam urutan pemasangan, atau null kalau ada siklus.
Pakai algoritma Kahn: hitung in-degree tiap package, mulai dari yang in-degree-nya 0, lalu kurangi in-degree package yang menunggunya.
Dua console.log di bawahnya harus mencetak, berurutan:
react,react-dom,next,app
null
Hint
Hitung dulu berapa dependency yang ditunggu tiap package (in-degree). Pasang yang gak menunggu apa-apa, lalu kurangi in-degree package yang menunggunya.
Pakai objek inDegree dan dependents, antrian berisi package dengan in-degree 0, dan loop while (queue.length > 0) dengan queue.shift(). Di akhir, bandingkan panjang urutan dengan packages.length.
for (const [dependency, dependent] of deps) { dependents[dependency].push(dependent); inDegree[dependent]++; } lalu di akhir: return order.length === packages.length ? order : null;
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...