문제
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
풀이
이번 문제도 배열로만 해결하려고 하지말고 int 카운트 변수 하나를 두면 간단히 풀리는 문제!
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] grade = new int[n];
int[] rank = new int[n];
for(int i=0; i<n; i++) {
grade[i] = in.nextInt();
rank[i] = 1;
}
for(int i=0; i<n; i++) { //rank[i] 등수결정
int cnt = 1; //등수 임시저장
for(int j=0; j<n; j++) { //grade 순회
if(grade[j] > grade[i]) cnt++;
}
rank[i] = cnt;
}
for(int r : rank) {
System.out.print(r + " ");
}
}
}
'PS(Java) > 인프런 강의 문제' 카테고리의 다른 글
[PS] 인프런 강의 - Array 10. 봉우리 (0) | 2022.10.20 |
---|---|
[PS] 인프런 강의 - Array 9. 격자판 최대합 (0) | 2022.10.18 |
[PS] 인프런 강의 - Array 7. 점수계산 (0) | 2022.10.18 |
[PS] 인프런 강의 - Array 6. 뒤집은 소수 (0) | 2022.10.18 |
[PS] 인프런 강의 - Array 5. 소수(에라토스테네스 체) (0) | 2022.10.18 |