Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2020
941
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.31 KB | None | 0 0
  1. function solve(input) {
  2. let obj = {};
  3.  
  4. for (const line of input) {
  5. if (line === 'Ave Cesar') {
  6. break;
  7. }
  8. let element = line.split(' ');
  9. if (element[1] === '->') {
  10. let theLine = line.split(' -> ');
  11. let gladiator = theLine[0];
  12. let technique = theLine[1];
  13. let skillAmount = Number(theLine[2]);
  14. if (!obj.hasOwnProperty(gladiator)) {
  15. obj[gladiator] = {};
  16. }
  17. if (!obj[gladiator].hasOwnProperty(technique)
  18. || obj[gladiator][technique] < skillAmount) {
  19. obj[gladiator][technique] = skillAmount;
  20. }
  21. } else if (element[1] === 'vs') {
  22. let theLine = line.split(' vs ');
  23. let gladiator1 = theLine[0];
  24. let gladiator2 = theLine[1];
  25. if (obj.hasOwnProperty(gladiator1)
  26. && obj.hasOwnProperty(gladiator2)) {
  27. let gladiator1Techniques = (obj[gladiator1]);
  28. let gladiator2Techniques = (obj[gladiator2]);
  29. for (const key in gladiator1Techniques) {
  30.  
  31. if (gladiator2Techniques.hasOwnProperty(key)) {
  32. if (gladiator1Techniques[key] > gladiator2Techniques[key]) {
  33. delete obj[gladiator2];
  34. } else if (gladiator1Techniques[key] < gladiator2Techniques[key]) {
  35. delete obj[gladiator1];
  36. }
  37. }
  38. }
  39. }
  40. }
  41. }
  42. for (const key in obj) {
  43. let sum = 0;
  44. let outsideObj = obj[key];
  45. for (const insideKey in outsideObj) {
  46. sum += outsideObj[insideKey];
  47. }
  48. outsideObj['sum'] = sum;
  49. }
  50. console.log(obj);
  51.  
  52. Object.entries(obj)
  53. .sort((a, b) => b[1].sum - a[1].sum || a[0].localeCompare(b[0]))
  54. .forEach(element => {
  55. console.log(`${element[0]}: ${element[1].sum} skill`);
  56. delete element[1].sum;
  57. Object.entries(element[1])
  58. .sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))
  59. .forEach(element => {
  60. console.log(` - ${element[0]} <!> ${element[1]}`);
  61. });
  62. });
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement