fork download
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. public class Program
  6. {
  7. public static void Main(string[] args)
  8. {
  9. Console.WriteLine("Hello, world!");
  10.  
  11. List<string> namaKlub = new List<string> { "Arsenal", "Chelsea", "Liverpool" };
  12.  
  13. Klasemen klasemen = new Klasemen(namaKlub);
  14. klasemen.CatatPermainan("Arsenal", "Chelsea", "2:1");
  15. klasemen.CatatPermainan("Arsenal", "Liverpool", "2:1");
  16. klasemen.CatatPermainan("Liverpool", "Chelsea", "1:1");
  17.  
  18. var semuaKlasemen = klasemen.CetakKlasemen();
  19. foreach (var item in semuaKlasemen)
  20. {
  21. Console.WriteLine($"{item.Klub}: {item.Skor} points");
  22. }
  23.  
  24. Console.WriteLine($"Peringkat 1: {klasemen.AmbilPeringkat(0)}");
  25. }
  26. }
  27.  
  28. public class KlasemenModel
  29. {
  30. public string Klub { get; set; }
  31. public int Skor { get; set; }
  32. }
  33.  
  34. public class Klasemen
  35. {
  36. private List<KlasemenModel> klasemenList;
  37.  
  38. public Klasemen(List<string> namaKlub)
  39. {
  40. klasemenList = namaKlub
  41. .Select(klub => new KlasemenModel { Klub = klub, Skor = 0 })
  42. .ToList();
  43. }
  44.  
  45. public void CatatPermainan(string klubKandang, string klubTandang, string skor)
  46. {
  47. var skorList = skor.Split(':');
  48. int skorKlubKandang = int.Parse(skorList[0]);
  49. int skorKlubTandang = int.Parse(skorList[1]);
  50.  
  51. var klubKandangObj = klasemenList.FirstOrDefault(x => x.Klub == klubKandang);
  52. var klubTandangObj = klasemenList.FirstOrDefault(x => x.Klub == klubTandang);
  53.  
  54. if (klubKandangObj == null || klubTandangObj == null)
  55. {
  56. throw new Exception("Klub tidak ditemukan dalam klasemen.");
  57. }
  58.  
  59. if (skorKlubKandang > skorKlubTandang)
  60. {
  61. klubKandangObj.Skor += 3;
  62. }
  63. else if (skorKlubKandang < skorKlubTandang)
  64. {
  65. klubTandangObj.Skor += 3;
  66. }
  67. else
  68. {
  69. klubKandangObj.Skor += 1;
  70. klubTandangObj.Skor += 1;
  71. }
  72. }
  73.  
  74. public List<KlasemenModel> CetakKlasemen()
  75. {
  76. return klasemenList.OrderByDescending(x => x.Skor).ToList();
  77. }
  78.  
  79. public string AmbilPeringkat(int nomorPeringkat)
  80. {
  81. var sortedList = klasemenList.OrderByDescending(x => x.Skor).ToList();
  82. if (nomorPeringkat < 0 || nomorPeringkat >= sortedList.Count)
  83. {
  84. throw new ArgumentOutOfRangeException("Nomor peringkat di luar jangkauan.");
  85. }
  86. return sortedList[nomorPeringkat].Klub;
  87. }
  88. }
  89.  
Success #stdin #stdout 0.07s 32064KB
stdin
Standard input is empty
stdout
Hello, world!
Arsenal: 6 points
Chelsea: 1 points
Liverpool: 1 points
Peringkat 1: Arsenal