Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve (input) {
- let numCars = Number(input.shift());
- let carsObj = {};
- for (let index = 0; index < numCars; index++) {
- let [model, mileage, fuel] = input[index].split("|");
- carsObj[model] = {};
- carsObj[model].mileage = Number(mileage);
- carsObj[model].fuel = Number(fuel);
- }
- input.splice(0, numCars);
- input.pop();
- let commands = {
- Drive (model, distance, fuel){
- let fuelLeft = carsObj[model].fuel - Number(fuel);
- if (fuelLeft <= 0) {
- console.log("Not enough fuel to make that ride");
- }else{
- carsObj[model].fuel = fuelLeft;
- carsObj[model].mileage += Number(distance);
- console.log(`${model} driven for ${distance} kilometers. ${fuel} liters of fuel consumed.`);
- }
- if (carsObj[model].mileage >= 100000) {
- console.log(`Time to sell the ${model}!`);
- delete carsObj[model];
- }
- },
- Refuel(car, fuel){
- let totalFuel = carsObj[car].fuel + Number(fuel);
- if (totalFuel >= 75) {
- console.log(`${car} refueled with ${75 - carsObj[car].fuel} liters`);
- carsObj[car].fuel = 75;
- }else{
- carsObj[car].fuel += Number(fuel);
- console.log(`${car} refueled with ${fuel} liters`);
- }
- },
- Revert(car, distance){
- let decreasedDistance = carsObj[car].mileage - Number(distance);
- if (decreasedDistance <= 10000) {
- carsObj[car].mileage = 10000;
- } else {
- carsObj[car].mileage -= distance;
- console.log(`${car} mileage decreased by ${distance} kilometers`);
- }
- }
- }
- input.forEach(element => {
- let [command, ...arg] = element.split(" : ");
- commands[command](...arg);
- });
- let sorted = Object.entries(carsObj);
- sorted.sort((a,b) => b[1].mileage - a[1].mileage );
- sorted.forEach(element => {
- console.log(`${element[0]} -> Mileage: ${element[1].mileage} kms, Fuel in the tank: ${element[1].fuel} lt.`);
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment