fork download
  1. using System;
  2.  
  3. public class Test
  4. {
  5. public static void Main()
  6. {
  7. // your code goes here
  8. Klasemen klasemen = new Klasemen();
  9. klasemen.CatatPermainan("Arsenal", "Liverpool", "2:1");
  10. klasemen.CatatPermainan("Arsenal", "Chelsea", "1:1");
  11. klasemen.CatatPermainan("Chelsea", "Arsenal", "0:3");
  12. klasemen.CatatPermainan("Chelsea", "Liverpool", "3:2");
  13. klasemen.CatatPermainan("Liverpool", "Arsenal", "2:2");
  14. klasemen.CatatPermainan("Liverpool", "Chelsea", "0:0");
  15.  
  16. var array = klasemen.CetakKlasemen();
  17. foreach (var item in array)
  18. {
  19. Console.WriteLine("{0}", item);
  20. }
  21.  
  22. string klub = klasemen.AmbilPeringkat(2);
  23. Console.WriteLine(klub);
  24. }
  25. }
  26.  
  27. public class Klasemen
  28. {
  29. private Dictionary<string, int> TabelKlasemen = new Dictionary<string, int>();
  30.  
  31. private enum Poin
  32. {
  33. Menang = 3,
  34. Seri = 1,
  35. Kalah = 0,
  36. }
  37.  
  38. public void CatatPermainan(string klubKandang, string klubTandang, string skor)
  39. {
  40. string[] goal = skor.Split(':');
  41. int goalKandang = int.Parse(goal[0]);
  42. int goalTandang = int.Parse(goal[1]);
  43.  
  44. int poinKandang = 0;
  45. int poinTandang = 0;
  46.  
  47. // Cek apa sudah ada klub kandang dan poinnya
  48. if (TabelKlasemen.ContainsKey(klubKandang))
  49. {
  50. poinKandang = TabelKlasemen[klubKandang];
  51. }
  52.  
  53. // Cek apa sudah ada klub tandang dan poinnya
  54. if (TabelKlasemen.ContainsKey(klubTandang))
  55. {
  56. poinTandang = TabelKlasemen[klubTandang];
  57. }
  58.  
  59. // Kalkulasi poin
  60. if (goalKandang > goalTandang)
  61. {
  62. CatatKlasemen(klubKandang, poinKandang + (int)Poin.Menang);
  63. }
  64. else if (goalTandang > goalKandang)
  65. {
  66. CatatKlasemen(klubTandang, poinTandang + (int)Poin.Menang);
  67. }
  68. else
  69. {
  70. CatatKlasemen(klubKandang, poinKandang + (int)Poin.Seri);
  71. CatatKlasemen(klubTandang, poinTandang + (int)Poin.Seri);
  72. }
  73. }
  74.  
  75. private void CatatKlasemen(string klub, int poin)
  76. {
  77. if (TabelKlasemen.ContainsKey(klub))
  78. {
  79. TabelKlasemen[klub] = poin;
  80. }
  81. else
  82. {
  83. TabelKlasemen.Add(klub, poin);
  84. }
  85. }
  86.  
  87. public Array CetakKlasemen()
  88. {
  89. var tabel = TabelKlasemen.ToArray();
  90.  
  91. return tabel;
  92. }
  93.  
  94. public string AmbilPeringkat(int nomorPeringkat)
  95. {
  96. var sortedKlasemen = TabelKlasemen.OrderByDescending(x => x.Value).ToList();
  97.  
  98. return sortedKlasemen[nomorPeringkat-1].Key;
  99. }
  100. }
  101.  
Success #stdin #stdout 0.08s 29888KB
stdin
Standard input is empty
stdout
[Arsenal, 8]
[Chelsea, 5]
[Liverpool, 2]
Chelsea