Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve (params) {
- let areas = new Map()
- let animals = new Map()
- params.slice(0, params.length - 1).forEach(line => {
- let [command, name, food, area] = line.split(':')
- if (command === 'Add') {
- if (!animals.has(name)) {
- animals.set(name, 0)
- if (!areas.has(area)) {
- areas.set(area, 0)
- }
- areas.set(area, areas.get(area) + 1)
- }
- animals.set(name, animals.get(name) + Number(food))
- } else if (command === 'Feed' && animals.has(name)) {
- animals.set(name, animals.get(name) - food)
- if (animals.get(name) <= 0) {
- console.log(`${name} was successfully fed`)
- animals.delete(name)
- areas.set(area, areas.get(area) - 1)
- }
- }
- })
- console.log('Animals:')
- Array.from(animals)
- .sort(
- ([nameA, foodA], [nameB, foodB]) =>
- foodB - foodA || nameA.localeCompare(nameB)
- )
- .forEach(([name, food]) => console.log(`${name} -> ${food}g`))
- console.log('Areas with hungry animals:')
- Array.from(areas)
- .filter(([area, count]) => count > 0)
- .sort(([areaA, countA], [areaB, countB]) => countB - countA)
- .forEach(([area, count]) => console.log(`${area} : ${count}`))
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement