algorithm

등수 구하기

juuuuuuun 2024. 5. 6. 15:08

설명

N명의 학생의 국어점수가 입력되면 각 학생의 등수를 입력된 순서대로 출력하는 프로그램을 작성하세요.

같은 점수가 입력될 경우 높은 등수로 동일 처리한다.

즉 가장 높은 점수가 92점인데 92점이 3명 존재하면 1등이 3명이고 그 다음 학생은 4등이 된다.

 

입력

첫 줄에 N(3<=N<=100)이 입력되고, 두 번째 줄에 국어점수를 의미하는 N개의 정수가 입력된다.

 

출력

입력된 순서대로 등수를 출력한다.

예시 입력 1 

5
87 89 92 100 76

 

예시 출력 1

4 3 2 1 5

 

소스 코드

import java.util.Scanner;

public class Main {

    public static int[] solution(int N, int[] grades) {
        int[] ans = new int[N];

		//ans에 등수 넣어주기
        for (int i = 0; i < N; i++) {
            int cnt = 1;
            
            //0 ~ N-1 돌면서 자기보다 큰 수가 있다면 cnt 증가
            for (int j = 0; j < N; j++) {
                if (grades[i] < grades[j]) {
                    cnt++;
                }
            }
            ans[i] = cnt; //cnt값 저장(자기보다 큰 수가 3개 있다면 cnt=4(4등))
        }

        return ans;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] grades = new int[N];
        for (int i = 0; i < N; i++) {
            grades[i] = sc.nextInt();
        }
        for (int s : solution(N, grades)) {
            System.out.print(s + " ");
        }
    }
}

'algorithm' 카테고리의 다른 글

봉우리  (0) 2024.05.09
격자판 최대합  (0) 2024.05.06
점수계산  (0) 2024.05.06
뒤집은 소수  (0) 2024.04.29
소수(에라토스테네스 체)  (0) 2024.04.29