const{readFile}=require('./reader');const{buildTree}=require('./08-common');constsumMetadata=root=>{lettotal=0;letqueue=[root];while(queue.length>0){constnode=queue.shift();total+=node.metadataEntries.reduce((sum,entry)=>sum+entry,0);queue.push(...node.childNodes);}returntotal;};(async()=>{constlines=awaitreadFile('08-input.txt');consttree=buildTree(lines[0].split(' '));constsum=sumMetadata(tree);console.log(`The sum of all metadata entries is ${sum}`);})();
08b.js
const{readFile}=require('./reader');const{buildTree}=require('./08-common');constgetNodeValue=node=>{letvalue=0;if(node.childNodesSize===0){value+=node.metadataEntries.reduce((sum,entry)=>sum+entry,0);}else{for(letentryofnode.metadataEntries){constchild=node.childNodes[entry-1];if(child){value+=getNodeValue(child);}}}returnvalue;}constgetRootNodeValue=root=>{returngetNodeValue(root);};(async()=>{constlines=awaitreadFile('08-input.txt');consttree=buildTree(lines[0].split(' '));constrootNodeValue=getRootNodeValue(tree);console.log(`The value of the root node is is ${rootNodeValue}`);})();
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
JavaScript solution
reader.js
08-common.js
08a.js
08b.js