Latihan 1: Consensus & Distributed Agreement — System Design

Latihan 1 dari materi Consensus & Distributed Agreement di System Design — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Lengkapi dua function untuk aturan mayoritas (quorum).

  1. hasQuorum(votes): votes adalah array boolean, true = setuju, false = menolak atau gak terjangkau. Hitung yang true, lalu kembalikan true kalau jumlahnya lebih dari separuh panjang array (yes > votes.length / 2), selain itu false.
  2. canCommit(clusterSize, yesVotes): kembalikan true kalau yesVotes > clusterSize / 2, selain itu false.

Pakai >, bukan >=: separuh persis belum mayoritas.

Lima baris console.log(...) di kode awal sudah ada, biarkan begitu. Output-nya harus persis lima baris ini, berurutan:

  1. true
  2. false
  3. true
  4. true
  5. false

Kedua function juga dipanggil langsung:

Hint