Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve (input) {
- const countFarmers = input.shift();
- let farmers = [];
- for (let i = 0; i < countFarmers; i++) {
- let currentFarmer = input.shift().split(' ');
- const farmerName = currentFarmer.shift();
- const workArea = currentFarmer.shift();
- let tasks = currentFarmer.shift().split(',');
- let farmer = {
- name: farmerName,
- workArea: workArea,
- tasks: tasks
- };
- farmers.push(farmer);
- }
- let tokens = input.shift().split(' / ');
- while(tokens[0] !== "End") {
- switch (tokens[0]) {
- case 'Execute': {
- const farmerName = tokens[1];
- const workArea = tokens[2];
- const task = tokens[3];
- let farmer = farmers.find(f => f.name === farmerName);
- if (farmer.workArea === workArea && farmer.tasks.includes(task)) {
- console.log(`${farmerName} has executed the task: ${task}!`);
- } else {
- console.log(`${farmerName} cannot execute the task: ${task}.`);
- }
- break;
- }
- case `Change Area`: {
- const farmerName = tokens[1];
- const newWorkArea = tokens[2];
- farmers.find(f => f.name === farmerName).workArea = newWorkArea;
- console.log(`${farmerName} has changed their work area to: ${newWorkArea}`)
- break;
- }
- case `Learn Task`: {
- const farmerName = tokens[1];
- const newTask = tokens[2];
- if (farmers.find(f => f.name === farmerName).tasks.includes(newTask)) {
- console.log(`${farmerName} already knows how to perform ${newTask}.`);
- } else {
- farmers.find(f => f.name === farmerName).tasks.push(newTask);
- console.log(`${farmerName} has learned a new task: ${newTask}.`);
- }
- break;
- }
- }
- tokens = input.shift().split(' / ');
- }
- for (let farmer of farmers) {
- farmer.tasks.sort((a, b) => a.localeCompare(b));
- console.log(`Farmer: ${farmer.name}, Area: ${farmer.workArea}, Tasks: ${farmer.tasks.join(', ')}`);
- }
- }
- solve([
- "2",
- "John garden watering,weeding",
- "Mary barn feeding,cleaning",
- "Execute / John / garden / watering",
- "Execute / Mary / garden / feeding",
- "Learn Task / John / planting",
- "Execute / John / garden / planting",
- "Change Area / Mary / garden",
- "Execute / Mary / garden / cleaning",
- "End"
- ] )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement