Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve (params) {
- params.pop()
- let animals = new Map()
- let areas = new Map()
- for (let param of params) {
- let [command, ...args] = param.split(':')
- if (command === 'Add') {
- let [animalName, dailyFoodLimit, area] = args
- dailyFoodLimit = +dailyFoodLimit
- if (!areas.has(area)) {
- areas.set(area, 0)
- }
- if (!animals.has(animalName)) {
- animals.set(animalName, 0)
- areas.set(area, areas.get(area) + 1)
- }
- animals.set(animalName, animals.get(animalName) + dailyFoodLimit)
- } else if (command === 'Feed') {
- let [animalName, food, area] = args
- food = +food
- if (animals.has(animalName)) {
- animals.set(animalName, animals.get(animalName) - food)
- if (animals.get(animalName) <= 0) {
- animals.delete(animalName)
- areas.set(area, areas.get(area) - 1)
- console.log(`${animalName} was successfully fed`)
- }
- }
- }
- }
- let sortedAnimals = [...animals].sort((a, b) => {
- let result = b[1] - a[1]
- if (result === 0) {
- result = a[0].localeCompare(b[0])
- }
- return result
- })
- console.log('Animals:')
- sortedAnimals.forEach(x => {
- console.log(`${x[0]} -> ${x[1]}g`)
- })
- console.log(`Areas with hungry animals:`)
- let sortedAreas = [...areas].sort((a, b) => b[1] - a[1])
- sortedAreas.forEach(x => {
- if (x[1] > 0) {
- console.log(`${x[0]} : ${x[1]}`)
- }
- })
- }
Add Comment
Please, Sign In to add comment