# Untitled

a guest
Oct 11th, 2019
134
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. function solve(input){
2. let arr = input.split(' ');
3. let materials = {};
4. let keyMaterails = {
5. 'shards': 0,
6. 'fragments': 0,
7. 'motes': 0
8. };
9. let winner = '';
10. for(let i = 0 ; i <= arr.length-1; i+=2){
11. let quantity = Number(arr[i]);
12. let material = arr[i+1].toLowerCase();
13.
14. if(material === 'shards' || material === 'fragments' || material === 'motes'){
15. keyMaterails[material] += Number(quantity);
16. if(keyMaterails[material]>= 250 && material === 'shards'){
17. winner = 'Shadowmourne' ;
18. keyMaterails[material] -= 250;
19. break;
20. }
21. else if(keyMaterails[material]>= 250 && material === 'fragments'){
22. winner = 'Valanyr' ;
23. keyMaterails[material] -= 250;
24. break;
25. }
26. else if(keyMaterails[material]>= 250 && material === 'motes'){
27. winner = 'Dragonwrath' ;
28. keyMaterails[material] -= 250;
29. break;
30. }
31. }
32.
33. else{
34. if(!materials.hasOwnProperty(material)){
35. materials[material] = Number(quantity);
36. }
37. else{
38. materials[material] += Number(quantity);
39. }
40. }
41.
42. }
43. console.log(`\${winner} obtained!`);
44.
45. let sortedkeyMaterails = Object.entries(keyMaterails);
46. //console.log(sortedkeyMaterails);
47. sortedkeyMaterails.sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]));
48. // for (let [material, quantity] of sortedkeyMaterails) {
49. // sortedkeyMaterails.sort(sortDescending);
50. // if(quantity === sortedkeyMaterails[1][1] ){
51. // sortedkeyMaterails.sort(sortAlphabetically);
52. // }
53. // }
54.
55. let sortedMaterails = Object.entries(materials);
56. sortedMaterails.sort(sortAlphabetically);
57. //for (let [material, quantity] of sortedMaterails) {
58. // sortedMaterails.sort(sortAlphabetically);
59. //}
60.
61. function sortDescending(firstMaterial, secondMaterial){
62. let firstQuantity = firstMaterial[1];
63. let secondQuantity = secondMaterial[1];
64. return secondQuantity - firstQuantity;
65. }
66.
67. function sortAlphabetically(firstMaterial, secondMaterial){
68. let firstMaterialName = firstMaterial[0];
69. let secondMaterialName = secondMaterial[0];
70. return firstMaterialName.localeCompare(secondMaterialName);
71. }
72. for(let [material, quantity] of sortedkeyMaterails){
73. console.log(`\${material}: \${quantity}`);
74. }
75. for(let [material, quantity] of sortedMaterails){
76. console.log(`\${material}: \${quantity}`);
77. }
78. }
RAW Paste Data