diff --git a/DecreasingScores/.idea/.gitignore b/DecreasingScores/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/DecreasingScores/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/DecreasingScores/.idea/misc.xml b/DecreasingScores/.idea/misc.xml new file mode 100644 index 0000000..31e1ebc --- /dev/null +++ b/DecreasingScores/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/DecreasingScores/.idea/modules.xml b/DecreasingScores/.idea/modules.xml new file mode 100644 index 0000000..cb94540 --- /dev/null +++ b/DecreasingScores/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/DecreasingScores/.idea/vcs.xml b/DecreasingScores/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/DecreasingScores/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/DecreasingScores/Checker.class b/DecreasingScores/Checker.class new file mode 100644 index 0000000..a320434 Binary files /dev/null and b/DecreasingScores/Checker.class differ diff --git a/DecreasingScores/DecreasingScore.class b/DecreasingScores/DecreasingScore.class new file mode 100644 index 0000000..ac530dd Binary files /dev/null and b/DecreasingScores/DecreasingScore.class differ diff --git a/DecreasingScores/DecreasingScore.java b/DecreasingScores/DecreasingScore.java new file mode 100644 index 0000000..8ef621d --- /dev/null +++ b/DecreasingScores/DecreasingScore.java @@ -0,0 +1,101 @@ + +/* DecreasingScore + + * Comparators are used to compare two objects. In this challenge, you'll create + * a comparator and use it to sort an array. + * + * The Player class is provided for you in your editor. It has + * fields: a String and a + * + * integer. + * + * Given an array of + * Player objects, write a comparator that sorts them in order of decreasing + * score; if + * + * or more players have the same score, sort those players alphabetically by + * name. To do this, you must create a Checker class that implements the + * Comparator interface, then write an int compare(Player a, Player b) method + * implementing the Comparator.compare(T o1, T o2) method. + * + * Input Format + * + * Input from stdin is handled by the locked stub code in the Solution class. + * + * The first line contains an integer, + * , denoting the number of players. + * Each of the subsequent lines contains a player's and + * + * , respectively. + * + * Constraints + * + * players can have the same name. + * Player names consist of lowercase English letters. + * + * Output Format + * + * You are not responsible for printing any output to stdout. The locked stub + * code in Solution will create a Checker object, use it to sort the Player + * array, and print each sorted element. + * + * Sample Input + * + * 5 + * amy 100 + * david 100 + * heraldo 50 + * aakansha 75 + * aleksa 150 + * + * Sample Output + * + * aleksa 150 + * amy 100 + * david 100 + * aakansha 75 + * heraldo 50 + */ +import java.util.*; + +// Write your Checker class here +class Checker implements Comparator { + + @Override + public int compare(Player p1, Player p2) { + if (p1.score == p2.score) { + return p1.name.compareTo(p2.name); + } + return p2.score - p1.score; + } +} + +class Player { + String name; + int score; + + Player(String name, int score) { + this.name = name; + this.score = score; + } +} + +public class DecreasingScore { + public static void main(String[] args) { + Scanner scan = new Scanner(System.in); + int n = scan.nextInt(); + + Player[] player = new Player[n]; + Checker checker = new Checker(); + + for (int i = 0; i < n; i++) { + player[i] = new Player(scan.next(), scan.nextInt()); + } + scan.close(); + + Arrays.sort(player, checker); + for (int i = 0; i < player.length; i++) { + System.out.printf("%s %s\n", player[i].name, player[i].score); + } + } +} diff --git a/DecreasingScores/DecreasingScores.iml b/DecreasingScores/DecreasingScores.iml new file mode 100644 index 0000000..b107a2d --- /dev/null +++ b/DecreasingScores/DecreasingScores.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/DecreasingScores/Player.class b/DecreasingScores/Player.class new file mode 100644 index 0000000..8df9861 Binary files /dev/null and b/DecreasingScores/Player.class differ