import java.util.*;
public class Main {
public static class Klasemen {
private static final int POIN_MENANG = 3;
private static final int POIN_SERI = 1;
private Map
<String, Integer
> klasemen
;
public Klasemen(List<String> clubs) {
klasemen = new HashMap<>();
klasemen.put(club, 0);
}
}
String[] splitSkor
= skor.
split(":"); int skorKandang
= Integer.
parseInt(splitSkor
[0]); int skorTandang
= Integer.
parseInt(splitSkor
[1]);
if (skorKandang > skorTandang) {
klasemen.put(klubKandang, klasemen.get(klubKandang) + POIN_MENANG);
} else if (skorKandang < skorTandang) {
klasemen.put(klubTandang, klasemen.get(klubTandang) + POIN_MENANG);
} else {
klasemen.put(klubKandang, klasemen.get(klubKandang) + POIN_SERI);
klasemen.put(klubTandang, klasemen.get(klubTandang) + POIN_SERI);
}
}
public List
<Map.
Entry<String, Integer
>> cetakKlasemen
() { List
<Map.
Entry<String, Integer
>> sorted
= new ArrayList
<>(klasemen.
entrySet()); sorted.sort((a, b) -> {
int comparison
= Integer.
compare(b.
getValue(), a.
getValue()); return (comparison != 0) ? comparison : a.getKey().compareTo(b.getKey());
});
return sorted;
}
public String ambilPeringkat
(int nomorPeringkat
) { List
<Map.
Entry<String, Integer
>> sorted
= cetakKlasemen
(); if (nomorPeringkat < 1 || nomorPeringkat > sorted.size()) {
return null;
}
return sorted.get(nomorPeringkat - 1).getKey();
}
}
public static void main
(String[] args
) { List
<String
> clubs
= Arrays.
asList("Liverpool",
"Chelsea",
"Arsenal"); Klasemen klasemen = new Klasemen(clubs);
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
for (Map.
Entry<String, Integer
> entry
: klasemen.
cetakKlasemen()) { System.
out.
println(entry.
getKey() + " => " + entry.
getValue()); }
// print klub pada peringkat 2
System.
out.
println("Peringkat 2: " + klasemen.
ambilPeringkat(2)); }
}
aW1wb3J0IGphdmEudXRpbC4qOwoKcHVibGljIGNsYXNzIE1haW4gewoJcHVibGljIHN0YXRpYyBjbGFzcyBLbGFzZW1lbiB7CgkJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IFBPSU5fTUVOQU5HID0gMzsKCQlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgUE9JTl9TRVJJID0gMTsKCQlwcml2YXRlIE1hcDxTdHJpbmcsIEludGVnZXI+IGtsYXNlbWVuOwoKCQlwdWJsaWMgS2xhc2VtZW4oTGlzdDxTdHJpbmc+IGNsdWJzKSB7CgkJCWtsYXNlbWVuID0gbmV3IEhhc2hNYXA8PigpOwoJCQlmb3IgKFN0cmluZyBjbHViIDogY2x1YnMpIHsKCQkJCWtsYXNlbWVuLnB1dChjbHViLCAwKTsKCQkJfQoJCX0KCgkJcHVibGljIHZvaWQgY2F0YXRQZXJtYWluYW4oU3RyaW5nIGtsdWJLYW5kYW5nLCBTdHJpbmcga2x1YlRhbmRhbmcsIFN0cmluZyBza29yKSB7CgkJCVN0cmluZ1tdIHNwbGl0U2tvciA9IHNrb3Iuc3BsaXQoIjoiKTsKCQkJaW50IHNrb3JLYW5kYW5nID0gSW50ZWdlci5wYXJzZUludChzcGxpdFNrb3JbMF0pOwoJCQlpbnQgc2tvclRhbmRhbmcgPSBJbnRlZ2VyLnBhcnNlSW50KHNwbGl0U2tvclsxXSk7CgoJCQlpZiAoc2tvckthbmRhbmcgPiBza29yVGFuZGFuZykgewoJCQkJa2xhc2VtZW4ucHV0KGtsdWJLYW5kYW5nLCBrbGFzZW1lbi5nZXQoa2x1YkthbmRhbmcpICsgUE9JTl9NRU5BTkcpOwoJCQl9IGVsc2UgaWYgKHNrb3JLYW5kYW5nIDwgc2tvclRhbmRhbmcpIHsKCQkJCWtsYXNlbWVuLnB1dChrbHViVGFuZGFuZywga2xhc2VtZW4uZ2V0KGtsdWJUYW5kYW5nKSArIFBPSU5fTUVOQU5HKTsKCQkJfSBlbHNlIHsKCQkJCWtsYXNlbWVuLnB1dChrbHViS2FuZGFuZywga2xhc2VtZW4uZ2V0KGtsdWJLYW5kYW5nKSArIFBPSU5fU0VSSSk7CgkJCQlrbGFzZW1lbi5wdXQoa2x1YlRhbmRhbmcsIGtsYXNlbWVuLmdldChrbHViVGFuZGFuZykgKyBQT0lOX1NFUkkpOwoJCQl9CgkJfQoKCQlwdWJsaWMgTGlzdDxNYXAuRW50cnk8U3RyaW5nLCBJbnRlZ2VyPj4gY2V0YWtLbGFzZW1lbigpIHsKCQkJTGlzdDxNYXAuRW50cnk8U3RyaW5nLCBJbnRlZ2VyPj4gc29ydGVkID0gbmV3IEFycmF5TGlzdDw+KGtsYXNlbWVuLmVudHJ5U2V0KCkpOwoJCQlzb3J0ZWQuc29ydCgoYSwgYikgLT4gewoJCQkJaW50IGNvbXBhcmlzb24gPSBJbnRlZ2VyLmNvbXBhcmUoYi5nZXRWYWx1ZSgpLCBhLmdldFZhbHVlKCkpOwoJCQkJcmV0dXJuIChjb21wYXJpc29uICE9IDApID8gY29tcGFyaXNvbiA6IGEuZ2V0S2V5KCkuY29tcGFyZVRvKGIuZ2V0S2V5KCkpOwoJCQkJfSk7CgkJCXJldHVybiBzb3J0ZWQ7CgkJfQoKCQlwdWJsaWMgU3RyaW5nIGFtYmlsUGVyaW5na2F0KGludCBub21vclBlcmluZ2thdCkgewoJCQlMaXN0PE1hcC5FbnRyeTxTdHJpbmcsIEludGVnZXI+PiBzb3J0ZWQgPSBjZXRha0tsYXNlbWVuKCk7CgkJCWlmIChub21vclBlcmluZ2thdCA8IDEgfHwgbm9tb3JQZXJpbmdrYXQgPiBzb3J0ZWQuc2l6ZSgpKSB7CgkJCQlyZXR1cm4gbnVsbDsKCQkJfQoJCQlyZXR1cm4gc29ydGVkLmdldChub21vclBlcmluZ2thdCAtIDEpLmdldEtleSgpOwoJCX0KCX0KCglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CgkJTGlzdDxTdHJpbmc+IGNsdWJzID0gQXJyYXlzLmFzTGlzdCgiTGl2ZXJwb29sIiwgIkNoZWxzZWEiLCAiQXJzZW5hbCIpOwoJCUtsYXNlbWVuIGtsYXNlbWVuID0gbmV3IEtsYXNlbWVuKGNsdWJzKTsKCgkJa2xhc2VtZW4uY2F0YXRQZXJtYWluYW4oIkFyc2VuYWwiLCAiTGl2ZXJwb29sIiwgIjI6MSIpOwoJCWtsYXNlbWVuLmNhdGF0UGVybWFpbmFuKCJBcnNlbmFsIiwgIkNoZWxzZWEiLCAiMToxIik7CgkJa2xhc2VtZW4uY2F0YXRQZXJtYWluYW4oIkNoZWxzZWEiLCAiQXJzZW5hbCIsICIwOjMiKTsKCQlrbGFzZW1lbi5jYXRhdFBlcm1haW5hbigiQ2hlbHNlYSIsICJMaXZlcnBvb2wiLCAiMzoyIik7CgkJa2xhc2VtZW4uY2F0YXRQZXJtYWluYW4oIkxpdmVycG9vbCIsICJBcnNlbmFsIiwgIjI6MiIpOwoJCWtsYXNlbWVuLmNhdGF0UGVybWFpbmFuKCJMaXZlcnBvb2wiLCAiQ2hlbHNlYSIsICIwOjAiKTsKCgkJLy8gcHJpbnQga2xhc2VtZW4KCQlmb3IgKE1hcC5FbnRyeTxTdHJpbmcsIEludGVnZXI+IGVudHJ5IDoga2xhc2VtZW4uY2V0YWtLbGFzZW1lbigpKSB7CgkJCVN5c3RlbS5vdXQucHJpbnRsbihlbnRyeS5nZXRLZXkoKSArICIgPT4gIiArIGVudHJ5LmdldFZhbHVlKCkpOwoJCX0KCgkJLy8gcHJpbnQga2x1YiBwYWRhIHBlcmluZ2thdCAyCgkJU3lzdGVtLm91dC5wcmludGxuKCJQZXJpbmdrYXQgMjogIiArIGtsYXNlbWVuLmFtYmlsUGVyaW5na2F0KDIpKTsKCX0KfQo=