예제로 공부하는 Java 100 문제풀이 Part.4
학생들의 성적을 1등부터 순위를 매겨서 출력해보시오.
이 문제는 순위(Ranking) 알고리즘에 대해서 알고 있는지를 묻는 문제이다.
이때, 성적 배열의 점수를 오름차순으로 정렬해서 출력시키고 옆에 등수를 표시하시오.
import java.util.Arrays;
public class Java100_Ex49 {
public static void printRanking(int[] scores, int[] ranking) {
// 배열 길이
int scores_len = scores.length;
int ranking_len = scores_len;
//System.out.println(scores_len);
System.out.println("총 " + scores_len + "명 학생의 성적과 등수는?");
for(int i = 0; i < scores_len; i++)
System.out.print(scores[i] + "점 --> " + ranking[i] + "등 ");
System.out.println();
}
public static void main(String[] args) {
//[1]: 배열 선언 --> 성적 배열, 랭킹 배열 2가지
int[] scores = {88,50,38,100,90,100,99,75};
int s_len = scores.length;
int[] ranking = new int[s_len];
//[1.5]: 오름차순으로 배열 정렬 --> Arrays.sort(배열명); --> import 필요.
Arrays.sort(scores);
//[2]: 반복문을 돌면서 랭킹 처리
for(int i = 0; i < s_len; i++) {
//랭킹 초기화 --> 0 --> 일단은 전부 1등으로 초기화
ranking[i] = 1;
//System.out.print(ranking[i] + " ");
//중첩 반복문
for(int j = 0; j < s_len; j++)
if(scores[i] < scores[j])
ranking[i]++;
}
//[3]: 출력 --> 별도의 메서드 호출
printRanking(scores, ranking);
}
}
'Backend > Java' 카테고리의 다른 글
[인프런] 홀수, 짝수, 알고리즘, 반복문 (1) | 2022.05.01 |
---|---|
[인프런] 자격증, 배열, 빈도 수 (0) | 2022.05.01 |
[인프런] 성적, 순위, 알고리즘 (0) | 2022.04.30 |
[인프런] 정렬 함수, 알고리즘, 성적, 순위 (0) | 2022.04.30 |
[인프런] 알고리즘, 정렬, 함수, 성적 (0) | 2022.04.30 |