Deo zbornika Učimo algoritme

Algoritam za vraćanje kusura

Algoritam za vraćanje kusura koristi rečnik kao pomoćnu strukturu podataka.

Problem

Ulaz u bioskop je 25 dolara. Ljudi u redu drže novčanice od 100, 50 i 25. Kasa je inicijalno prazna. Izračunaj da li ćeš moći svima da vratiš imaKusura.

Rešenje

function imaKusura(novcanice) {
  const kasa = {
    50: 0,
    25: 0
  }
  for (const novcanica of novcanice) {
    kasa[novcanica]++
    if (novcanica == 50) kasa[25]--
    if (novcanica == 100) {
      kasa[25]--
      if (kasa[50]) kasa[50]--
      else kasa[25] -= 2
    }
    if (kasa[25] < 0) return 'NE'
  }
  return 'DA'
}

console.log(imaKusura([25, 25, 25, 50, 75]))
console.log(imaKusura([25, 25, 100]))


Izvor: codewars.com