Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve(inputArr) {
- let messageCount = inputArr.shift();
- let attackedPlanets = [];
- let destroyedPlanets = [];
- let decryptionKey = '';
- const regExKey = /[SsTtAaRr]/g;
- const regExValidator = /[^@\-:!>]*@([A-Za-z]+)[^@\-:!>]*:(\d+)[^@\-:!>]*!([A|D])![^@\-:!>]*->(\d+)/;
- for (let m = 0; m < messageCount; m++) {
- let message = inputArr[m];
- if (!message.match(regExKey)) {
- decryptionKey = 0;
- } else {
- decryptionKey = message.match(regExKey).length;
- }
- let decodedMessage = [];
- for (let i = 0; i < message.length; i++) {
- let decoded = message[i].charCodeAt(0) - decryptionKey;
- let realSymbol = String.fromCharCode(decoded);
- decodedMessage.push(realSymbol);
- }
- decodedMessage = decodedMessage.join('');
- if (decodedMessage.match(regExValidator)) {
- let planetName = decodedMessage.match(regExValidator)[1];
- let action = decodedMessage.match(regExValidator)[3];
- if (action === 'A') {
- attackedPlanets.push(planetName);
- } else if (action === 'D') {
- destroyedPlanets.push(planetName);
- }
- }
- }
- let attackedPlanetsCount = attackedPlanets.length;
- let attackedPlanetsList = attackedPlanets
- .sort((a, b) => a.localeCompare(b));
- let destroyedPlanetsCount = destroyedPlanets.length;
- let destroyedPlanetsList = destroyedPlanets
- .sort((a, b) => a.localeCompare(b));
- console.log(`Attacked planets: ${attackedPlanetsCount}`);
- attackedPlanetsList.forEach(x => console.log(`-> ${x}`));
- console.log(`Destroyed planets: ${destroyedPlanetsCount}`);
- destroyedPlanetsList.forEach(x => console.log(`-> ${x}`));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement