class Klasemen:
def __init__(self, klubSepakbola: list):
defaultSkor = 0
self.dataKlub = dict.fromkeys(klubSepakbola, defaultSkor)
def catatPermainan(self, klubKandang: str, klubTandang: str, skor: str):
skorSplitted = skor.split(":")
if skorSplitted[0] > skorSplitted[1]:
self.dataKlub[klubKandang] += 3
elif skorSplitted[0] < skorSplitted[1]:
self.dataKlub[klubTandang] += 3
else:
self.dataKlub[klubKandang] += 1
self.dataKlub[klubTandang] += 1
def cetakKlasemen(self) -> list:
klasemen = []
klasemenSorted = sorted(self.dataKlub.items(), key=lambda item: item[1], reverse=True)
for klub in klasemenSorted:
klasemen.append(f"{klub[0]}=>{klub[1]}")
return klasemen
def ambilPeringkat(self, nomorPeringkat) -> str:
klasemenSorted = sorted(self.dataKlub.items(), key=lambda item: item[1], reverse=True)
return klasemenSorted[nomorPeringkat-1][0]
if __name__ == "__main__":
klubSepakbola = ["Liverpool", "Chelsea", "Arsenal"]
klasemen = Klasemen(klubSepakbola)
klasemen.catatPermainan("Arsenal", "Liverpool", "2:1")
klasemen.catatPermainan("Arsenal", "Chelsea", "1:1")
klasemen.catatPermainan("Chelsea", "Arsenal", "0:3")
klasemen.catatPermainan("Chelsea", "Liverpool", "3:2")
klasemen.catatPermainan("Liverpool", "Arsenal", "2:2")
klasemen.catatPermainan("Liverpool", "Chelsea", "0:0")
print(klasemen.cetakKlasemen())
print(klasemen.ambilPeringkat(2))
Y2xhc3MgS2xhc2VtZW46CiAgICBkZWYgX19pbml0X18oc2VsZiwga2x1YlNlcGFrYm9sYTogbGlzdCk6CiAgICAgICAgZGVmYXVsdFNrb3IgPSAwCiAgICAgICAgc2VsZi5kYXRhS2x1YiA9IGRpY3QuZnJvbWtleXMoa2x1YlNlcGFrYm9sYSwgZGVmYXVsdFNrb3IpIAogICAgICAgIAogICAgZGVmIGNhdGF0UGVybWFpbmFuKHNlbGYsIGtsdWJLYW5kYW5nOiBzdHIsIGtsdWJUYW5kYW5nOiBzdHIsIHNrb3I6IHN0cik6CiAgICAgICAgc2tvclNwbGl0dGVkID0gc2tvci5zcGxpdCgiOiIpCiAgICAgICAgaWYgc2tvclNwbGl0dGVkWzBdID4gc2tvclNwbGl0dGVkWzFdOgogICAgICAgICAgICBzZWxmLmRhdGFLbHViW2tsdWJLYW5kYW5nXSArPSAzCiAgICAgICAgZWxpZiBza29yU3BsaXR0ZWRbMF0gPCBza29yU3BsaXR0ZWRbMV06CiAgICAgICAgICAgIHNlbGYuZGF0YUtsdWJba2x1YlRhbmRhbmddICs9IDMKICAgICAgICBlbHNlOgogICAgICAgICAgICBzZWxmLmRhdGFLbHViW2tsdWJLYW5kYW5nXSArPSAxCiAgICAgICAgICAgIHNlbGYuZGF0YUtsdWJba2x1YlRhbmRhbmddICs9IDEKICAgIAogICAgZGVmIGNldGFrS2xhc2VtZW4oc2VsZikgLT4gbGlzdDoKICAgICAgICBrbGFzZW1lbiA9IFtdCiAgICAgICAga2xhc2VtZW5Tb3J0ZWQgPSBzb3J0ZWQoc2VsZi5kYXRhS2x1Yi5pdGVtcygpLCBrZXk9bGFtYmRhIGl0ZW06IGl0ZW1bMV0sIHJldmVyc2U9VHJ1ZSkKICAgICAgICBmb3Iga2x1YiBpbiBrbGFzZW1lblNvcnRlZDoKICAgICAgICAgICAga2xhc2VtZW4uYXBwZW5kKGYie2tsdWJbMF19PT57a2x1YlsxXX0iKQogICAgICAgICAgICAKICAgICAgICByZXR1cm4ga2xhc2VtZW4KICAgICAgICAKICAgIGRlZiBhbWJpbFBlcmluZ2thdChzZWxmLCBub21vclBlcmluZ2thdCkgLT4gc3RyOgogICAgICAgIGtsYXNlbWVuU29ydGVkID0gc29ydGVkKHNlbGYuZGF0YUtsdWIuaXRlbXMoKSwga2V5PWxhbWJkYSBpdGVtOiBpdGVtWzFdLCByZXZlcnNlPVRydWUpCiAgICAgICAgCiAgICAgICAgcmV0dXJuIGtsYXNlbWVuU29ydGVkW25vbW9yUGVyaW5na2F0LTFdWzBdCiAgICAKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIGtsdWJTZXBha2JvbGEgPSBbIkxpdmVycG9vbCIsICJDaGVsc2VhIiwgIkFyc2VuYWwiXQogICAgCiAgICBrbGFzZW1lbiA9IEtsYXNlbWVuKGtsdWJTZXBha2JvbGEpCiAgICBrbGFzZW1lbi5jYXRhdFBlcm1haW5hbigiQXJzZW5hbCIsICJMaXZlcnBvb2wiLCAiMjoxIikKICAgIGtsYXNlbWVuLmNhdGF0UGVybWFpbmFuKCJBcnNlbmFsIiwgIkNoZWxzZWEiLCAiMToxIikKICAgIGtsYXNlbWVuLmNhdGF0UGVybWFpbmFuKCJDaGVsc2VhIiwgIkFyc2VuYWwiLCAiMDozIikKICAgIGtsYXNlbWVuLmNhdGF0UGVybWFpbmFuKCJDaGVsc2VhIiwgIkxpdmVycG9vbCIsICIzOjIiKQogICAga2xhc2VtZW4uY2F0YXRQZXJtYWluYW4oIkxpdmVycG9vbCIsICJBcnNlbmFsIiwgIjI6MiIpCiAgICBrbGFzZW1lbi5jYXRhdFBlcm1haW5hbigiTGl2ZXJwb29sIiwgIkNoZWxzZWEiLCAiMDowIikKICAgIAogICAgcHJpbnQoa2xhc2VtZW4uY2V0YWtLbGFzZW1lbigpKQogICAgCiAgICBwcmludChrbGFzZW1lbi5hbWJpbFBlcmluZ2thdCgyKSk=