N명의 학생의 국어점수가 입력되면 각 학생의 등수를 입력된 순서대로 출력하는 프로그램을 작성하세요.
같은 점수가 입력될 경우 높은 등수로 동일 처리한다.
즉 가장 높은 점수가 92점인데 92점이 3명 존재하면 1등이 3명이고 그 다음 학생은 4등이 된다.
▣ 입력설명
첫 줄에 N(3<=N<=100)이 입력되고, 두 번째 줄에 국어점수를 의미하는 N개의 정수가 입력 된다.
▣ 출력설명
입력된 순서대로 등수를 출력한다.
▣ 입력예제 1
5
87 89 92 100 76
▣ 출력예제 1
43215
public static int[] solution(int N, int[] arr){
int[] result = new int[N];
for (int i = 0; i < arr.length; i++) {
result[i] = checkLevel(i, arr);
}
printArr(result);
return result;
}
public static int checkLevel(int i, int[] arr){
int level = 1;
for (int j = 0; j < arr.length; j++) {
// 현재 값인 경우 비교하지 않음
if(i == j){
continue;
}
// 다음 수보다 작은 경우 등수가 올라간다.
if(arr[i] < arr[j]){
level++;
}
}
return level;
}
public static void printArr(int[] arr){
for (int i : arr) {
System.out.print(i);
}
}
public static void main(String[] args) {
int[] arr = new int[]{5, 5, 4, 4, 3};
// int[] arr = new int[]{2, 2, 2, 1, 5};
// int[] arr = new int[]{4, 2, 3, 1, 5};
// int[] arr = new int[]{1, 2, 3, 4, 5};
// int[] arr = new int[]{87, 89, 92, 100, 76};
solution(5, arr);
}
'JAVA > 알고리즘' 카테고리의 다른 글
공통원소 구하기(배열 2개) (0) | 2021.05.24 |
---|---|
두 배열 합치기 (0) | 2021.05.24 |
뒤집은 소수 구하기 JAVA (0) | 2021.05.13 |
N까지 소수 개수 구하기 JAVA (0) | 2021.05.13 |
피보나치수열 JAVA (0) | 2021.05.13 |