This community-built FAQ covers the “Top Score Sorter” code challenge in Java. You can find that challenge here, or pick any challenge you like from our list.

Top Discussions on the Java challenge Top Score Sorter

There are currently no frequently asked questions or top answers associated with this challenge – that’s where you come in! You can contribute to this section by offering your own questions, answers, or clarifications on this challenge. Ask a question or post a solution by clicking reply () below.

If you’ve had an “aha” moment about the concepts, formatting, syntax, or anything else with this challenge, consider sharing those insights! Teaching others and answering their questions is one of the best ways to learn and stay sharp.

Join the Discussion. Help a fellow learner on their journey.

Ask or answer a question about this exercise by clicking reply () below!
You can also find further discussion and get answers to your questions over in #get-help.

Agree with a comment or answer? Like () to up-vote the contribution!

public class ScoreSorter {
public static void main(String args) {
int answer = scoreSorter(new int{1, 2, 3, 9999, 13}, 10000);
for (int i = 0; i < answer.length; i++) {
System.out.println(answer[i]);
}
}
public static int reversedArray(int array){
int last = array.length - 1;
int middle = array.length / 2;
for(int i=0;i<middle;i++){
int temp=array[i];
array[i]=array[last-i];
array[last-i]=temp;
}
return array;
}

public static int scoreSorter(int array, int topScore) {
// Write your code here
Arrays.sort(array);
reversedArray(array);

I filtered out anything bigger than the top score possible,
and I sorted the array
by making another array for the sorted version,
and then finding the highest number in the original array, and adding it to the sorted array
then the next highest, and adding that as the next thing in the sorted array,
and so on.

my code

import java.util.*;
public class ScoreSorter {
public static int getNextMax(int[] array, boolean[] available, boolean changeInAvailable) {
int length = array.length;
boolean started = false;
int max_so_far = 0;
int index_of_max = 0;
for (int i = 0; i < length; i++) {
if (available[i]) {
if (!started || (array[i] > max_so_far)) {
max_so_far = array[i];
index_of_max = i;
started = true;
}
}
}
if (changeInAvailable) {
available[index_of_max] = false;
}
return max_so_far;
};
public static int[] scoreSorter(int[] array, int topScore) {
int length = array.length;
int validCount = 0;
for (int i = 0; i < length; i++) {
if (array[i] <= topScore) {
validCount++;
}
}
boolean[] available = new boolean[length];
for (int i = 0; i < length; i++) {
available[i] = (array[i] <= topScore);
}
int[] sorted = new int[validCount];
for (int j = 0; j < validCount; j++) {
sorted[j] = getNextMax(array, available, true);
}
return sorted;
}
public static void main(String[] args) {
int[] demo = new int[]{1, 2, 3, 9999, 13};
int[] answer = scoreSorter(demo, 10000);
System.out.print("[");
for (int i = 0; i < answer.length; i++) {
System.out.print(answer[i]);
if (i != answer.length - 1) {
System.out.print(", ");
}
}
System.out.println("]");
}
}

Well I think I tried to do it the simplest possible, heres my code,

import java.util.*;

public class ScoreSorter {
public static void main(String args) {
int answer = scoreSorter(new int{1, 2, 3, 9999, 13}, 10000);
for (int i = 0; i < answer.length; i++) {
System.out.println(answer[i]);
}
}

public static int scoreSorter(int array, int topScore) {
// Write your code here
int temp = 0;
for(int i = 0; i < array.length; i++){
for(int j = i+1; j< array.length; j++){
if(array[i] < array[j]){
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
return array;
}
}