Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function airPollution(mapInput, commandLine) {
- const map = [];
- mapInput.forEach((element) => {
- map.push(element.split(' ').map(Number));
- });
- const commandLineLength = commandLine.length;
- for (let i = 0; i < commandLineLength; i++) {
- const command = commandLine[i].slice(0).split(' ')[0];
- const commandValue = Number(commandLine[i].slice(0).split(' ')[1]);
- const rowLength = map[i].length;
- switch (command) {
- case 'breeze':
- for (let column = 0; column < rowLength; column++) {
- if (map[commandValue][column] - 15 >= 0) {
- map[commandValue][column] -= 15;
- } else {
- map[commandValue][column] = 0;
- }
- }
- break;
- case 'gale':
- for (let row = 0; row < rowLength; row++) {
- if (map[row][commandValue] - 20 >= 0) {
- map[row][commandValue] -= 20;
- } else {
- map[row][commandValue] = 0;
- }
- }
- break;
- case 'smog':
- const mapLength = map.length;
- for (let row = 0; row < mapLength; row++) {
- for (let column = 0; column < rowLength; column++) {
- map[row][column] += commandValue;
- }
- }
- break;
- default:
- break;
- }
- }
- let pollutedBlocks = [];
- for (let i = 0; i < map.length; i++) {
- for (let j = 0; j < map[i].length; j++) {
- if (map[i][j] >= 50) {
- pollutedBlocks.push(`[${i}-${j}]`);
- }
- }
- }
- if (typeof pollutedBlocks !== 'undefined' && pollutedBlocks.length > 0) {
- console.log(`Polluted areas: ${pollutedBlocks.join(', ')}`);
- } else {
- console.log(`No polluted areas`);
- }
- console.table(map);
- }
Advertisement
Add Comment
Please, Sign In to add comment