DecreasingScoresRanks
This commit is contained in:
@@ -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<Player> {
|
||||
|
||||
@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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user