Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // On the Way to Annapurna
- function solve(input) {
- let stores = {};
- const add = (storeName, items) => {
- if (!stores.hasOwnProperty(storeName)) {
- stores[storeName] = items
- } else {
- stores[storeName] += ',' + items;
- }
- };
- const remove = (storeName) => {
- if (stores.hasOwnProperty(storeName)) {
- delete stores[storeName];
- }
- };
- let cmdParser = {
- 'Add': add,
- 'Remove': remove
- };
- for (let line of input) {
- if (line === 'END') {
- break;
- }
- let [ cmd, store, items] = line.split('->');
- cmdParser[cmd](store, items);
- }
- console.log('Stores list:');
- let sortedByCount = Object.entries(stores).sort((a, b) => b[1].length - a[1].length && b[0].localeCompare(a[0]));
- for (let tuple of sortedByCount) {
- let store = tuple.shift();
- console.log(store);
- let items = tuple.join(',').split(',');
- items.forEach((item) => {
- console.log(`<<${item}>>`);
- });
- }
- }
- solve(
- [
- 'Add->PeakSports->Map,Navigation,Compass',
- 'Add->Paragon->Sunscreen',
- 'Add->Groceries->Dried-fruit,Nuts',
- 'Add->Groceries->Nuts',
- 'Add->Paragon->Tent',
- 'Remove->Paragon',
- 'Add->Pharmacy->Pain-killers',
- 'END'
- ]
- );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement