설명
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 + " ");
}
}
}