Advertisement
BoykoBoevSU

Untitled

Jul 21st, 2019
560
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. function solve(input) {
  2. let array = input;
  3. let animals = {};
  4. for (let line of array) {
  5. if(line === 'Last Info') {
  6. break;
  7. }
  8. let [command, name, food, area] = line.split(':');
  9. food = Number(food);
  10. if(command === 'Add') {
  11. animals = addAnimal(name, food, area);
  12. }
  13. else if(command === 'Feed') {
  14. animals = feedAnimal(name, food);
  15. }
  16. }
  17. let sortedAnimals = sortAnimals(animals);
  18. print(sortedAnimals);
  19. printAreas(animals);
  20. function addAnimal(name, food, area) {
  21. if(!animals.hasOwnProperty(name)) {
  22. animals[name] = {};
  23. animals[name]['food'] = food;
  24. animals[name]['area'] = area;
  25. }
  26. else {
  27. animals[name]['food'] += food
  28. }
  29. return animals;
  30. }
  31. function feedAnimal(name, food) {
  32. if(animals.hasOwnProperty(name)) {
  33. animals[name]['food'] -= food;
  34. if(animals[name]['food'] <= 0) {
  35. console.log(`${name} was successfully fed`);
  36. delete animals[name];
  37. }
  38. }
  39. return animals;
  40. }
  41. function sortAnimals(animals) {
  42. let animalList = {};
  43. for (let key in animals) {
  44. animalList[key] = animals[key]['food'];
  45. }
  46. let tuples = Object.entries(animalList);
  47. tuples.sort((a, b) => a[0].localeCompare(b[0]));
  48. tuples.sort((a, b) => b[1] - a[1]);
  49. return tuples;
  50. }
  51. function print(sortedAnimals) {
  52. console.log('Animals:');
  53. for(let i of sortedAnimals) {
  54. console.log(`${i[0]} -> ${i[1]}g`);
  55. }
  56. }
  57. function printAreas(animals) {
  58. let object = {};
  59. for(let key in animals) {
  60. let area = animals[key]['area'];
  61. if(!object.hasOwnProperty(area)) {
  62. object[area] = 1;
  63. }
  64. else {
  65. object[area] += 1;
  66. }
  67. }
  68. let tuples = Object.entries(object);
  69. tuples.sort((a, b) => b[1] - a[1]);
  70. console.log('Areas with hungry animals:');
  71. for(let i of tuples) {
  72. console.log(`${i[0]} : ${i[1]}`);
  73. }
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement