JAVA/알고리즘

등수 출력

lovineff 2021. 5. 24. 15:11

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