Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve (commandArr) {
- class Astronaut {
- constructor(name, location) {
- this.name = name;
- this.location = location;
- this.skills = [];
- }
- toString() {
- return `Astronaut: ${this.name}, Section: ${this.location}, Skills: ${this.skills.sort().join(', ')}`;
- }
- }
- let astronautArr = [];
- let numAstronats = Number(commandArr[0]);
- for (let idx = 1; idx <= numAstronats; idx++) {
- let astroStr = commandArr[idx];
- let [name, location, skills] = astroStr.split(' ');
- let astronaut = new Astronaut(name, location);
- let skillArr = skills.split(',');
- for (let skill of skillArr) {
- astronaut.skills.push(skill);
- }
- astronautArr.push(astronaut);
- }
- for (let idx = numAstronats + 1; idx < commandArr.length; idx++) {
- currentCommandTokens = commandArr[idx].split(' / ');
- if (currentCommandTokens[0] === "End") {
- break;
- } else if (currentCommandTokens[0] === "Perform") {
- let [_, name, location, task] = currentCommandTokens;
- let currentAstronaut = astronautArr.find(p => p.name === name);
- if (!currentAstronaut) {
- continue;
- }
- if (currentAstronaut.location !== location || !currentAstronaut.skills.includes(task)) {
- console.log(`${currentAstronaut.name} cannot perform the skill: ${task}.`);
- continue;
- }
- console.log(`${currentAstronaut.name} has successfully performed the skill: ${task}!`)
- } else if (currentCommandTokens[0] === "Transfer") {
- let [_, name, location] = currentCommandTokens;
- let currentAstronaut = astronautArr.find(p => p.name === name);
- if (!currentAstronaut) {
- continue;
- }
- currentAstronaut.location = location;
- console.log(`${currentAstronaut.name} has been transferred to: ${location}`);
- } else if (currentCommandTokens[0] === "Learn Skill") {
- let [_, name, task] = currentCommandTokens;
- let currentAstronaut = astronautArr.find(p => p.name === name);
- if (!currentAstronaut) {
- continue;
- }
- if (currentAstronaut.skills.includes(task)) {
- console.log(`${currentAstronaut.name} already knows the skill: ${task}.`);
- } else {
- currentAstronaut.skills.push(task);
- console.log(`${currentAstronaut.name} has learned a new skill: ${task}.`);
- }
- }
- }
- console.log(astronautArr.join('\n'));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement