class Klasemen {
constructor(klubList) {
this.klubData = {};
klubList.forEach((klub) => {
this.klubData[klub] = 0;
});
}
catatPermainan(klubKandang, klubTandang, skor) {
const [skorKandang, skorTandang] = skor.split(":").map(Number);
if (skorKandang > skorTandang) {
this.klubData[klubKandang] += 3;
} else if (skorKandang < skorTandang) {
this.klubData[klubTandang] += 3;
} else {
this.klubData[klubKandang] += 1;
this.klubData[klubTandang] += 1;
}
}
ambilSemuaPeringkat() {
const sorted = Object.entries(this.klubData).sort((a, b) => b[1] - a[1]);
return sorted.map(([klub, point]) => [`${klub}=>${point}`]);
}
cetakKlasemen() {
console.log(this.ambilSemuaPeringkat());
}
ambilPeringkat(n) {
const sorted = Object.entries(this.klubData).sort((a, b) => b[1] - a[1]);
return sorted[n - 1][0];
}
}
const klasemen = new Klasemen(["Liverpool", "Chelsea", "Arsenal"]);
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");
klasemen.cetakKlasemen();
console.log(klasemen.ambilPeringkat(2));
Y2xhc3MgS2xhc2VtZW4gewogIGNvbnN0cnVjdG9yKGtsdWJMaXN0KSB7CiAgICB0aGlzLmtsdWJEYXRhID0ge307CiAgICBrbHViTGlzdC5mb3JFYWNoKChrbHViKSA9PiB7CiAgICAgIHRoaXMua2x1YkRhdGFba2x1Yl0gPSAwOwogICAgfSk7CiAgfQoKICBjYXRhdFBlcm1haW5hbihrbHViS2FuZGFuZywga2x1YlRhbmRhbmcsIHNrb3IpIHsKICAgIGNvbnN0IFtza29yS2FuZGFuZywgc2tvclRhbmRhbmddID0gc2tvci5zcGxpdCgiOiIpLm1hcChOdW1iZXIpOwoKICAgIGlmIChza29yS2FuZGFuZyA+IHNrb3JUYW5kYW5nKSB7CiAgICAgIHRoaXMua2x1YkRhdGFba2x1YkthbmRhbmddICs9IDM7CiAgICB9IGVsc2UgaWYgKHNrb3JLYW5kYW5nIDwgc2tvclRhbmRhbmcpIHsKICAgICAgdGhpcy5rbHViRGF0YVtrbHViVGFuZGFuZ10gKz0gMzsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMua2x1YkRhdGFba2x1YkthbmRhbmddICs9IDE7CiAgICAgIHRoaXMua2x1YkRhdGFba2x1YlRhbmRhbmddICs9IDE7CiAgICB9CiAgfQoKICBhbWJpbFNlbXVhUGVyaW5na2F0KCkgewogICAgY29uc3Qgc29ydGVkID0gT2JqZWN0LmVudHJpZXModGhpcy5rbHViRGF0YSkuc29ydCgoYSwgYikgPT4gYlsxXSAtIGFbMV0pOwogICAgcmV0dXJuIHNvcnRlZC5tYXAoKFtrbHViLCBwb2ludF0pID0+IFtgJHtrbHVifT0+JHtwb2ludH1gXSk7CiAgfQoKICBjZXRha0tsYXNlbWVuKCkgewogICAgY29uc29sZS5sb2codGhpcy5hbWJpbFNlbXVhUGVyaW5na2F0KCkpOwogIH0KCiAgYW1iaWxQZXJpbmdrYXQobikgewogICAgY29uc3Qgc29ydGVkID0gT2JqZWN0LmVudHJpZXModGhpcy5rbHViRGF0YSkuc29ydCgoYSwgYikgPT4gYlsxXSAtIGFbMV0pOwogICAgcmV0dXJuIHNvcnRlZFtuIC0gMV1bMF07CiAgfQp9Cgpjb25zdCBrbGFzZW1lbiA9IG5ldyBLbGFzZW1lbihbIkxpdmVycG9vbCIsICJDaGVsc2VhIiwgIkFyc2VuYWwiXSk7CgprbGFzZW1lbi5jYXRhdFBlcm1haW5hbigiQXJzZW5hbCIsICJMaXZlcnBvb2wiLCAiMjoxIik7CmtsYXNlbWVuLmNhdGF0UGVybWFpbmFuKCJBcnNlbmFsIiwgIkNoZWxzZWEiLCAiMToxIik7CmtsYXNlbWVuLmNhdGF0UGVybWFpbmFuKCJDaGVsc2VhIiwgIkFyc2VuYWwiLCAiMDozIik7CmtsYXNlbWVuLmNhdGF0UGVybWFpbmFuKCJDaGVsc2VhIiwgIkxpdmVycG9vbCIsICIzOjIiKTsKa2xhc2VtZW4uY2F0YXRQZXJtYWluYW4oIkxpdmVycG9vbCIsICJBcnNlbmFsIiwgIjI6MiIpOwprbGFzZW1lbi5jYXRhdFBlcm1haW5hbigiTGl2ZXJwb29sIiwgIkNoZWxzZWEiLCAiMDowIik7CgprbGFzZW1lbi5jZXRha0tsYXNlbWVuKCk7Cgpjb25zb2xlLmxvZyhrbGFzZW1lbi5hbWJpbFBlcmluZ2thdCgyKSk7Cg==