JSFiddle - React, Tailwind, and code Playground

by jrab227

JavaScript

let r = 1;
let c = 10;

let supplierCost = (v) => (v === "A") ? r : c;

function costOfSchedule(assignment, schedule) {
	var cost = 0;
	for (var i = 0; i < assignment.length; i++) {
  	if (assignment[i] === "A") {
    	cost += 1 * schedule[i];
    } else {
    	cost += 10
    }
  }
  return cost;
}

function Scheduler(requirements) {
	if (requirements.length < 4) return requirements.map(() => 'A');
	let chooseA = ["A"].concat(Scheduler(requirements.slice(1)));
  let chooseB = ["B", "B", "B", "B"].concat(Scheduler(requirements.slice(4)));
  
  return (costOfSchedule(chooseA, requirements) < costOfSchedule(chooseB, requirements)) ?
  	chooseA : chooseB;
}

// Remove the bottom comment lines to verify 
// alert(Scheduler([11, 9, 9, 12, 12, 12, 12, 9, 9, 11]))