Algorithm/JUNGOL
[정올] 628 : 파일입출력 - 자가진단3 (*)
Gyuri
2022. 1. 11. 18:08
문제
10명의 학생 이름과 점수를 입력받아 이름과 점수, 등수를 입력받은 순서대로 출력하는 프로그램을 작성하시오.
단, 출력시 "이름", "점수", "등수"는 한 칸의 공백으로 구분을 하며, Name은 4칸(%4s), Score는 5칸(%5d), Rank는 각 4칸(%4d)으로 출력한다.
* 표준입출력방식으로 작성하세요.
입력 예
Hong 90
Lim 85
Park 88
Gong 75
Lee 100
Seo 90
Jang 75
Song 90
Kim 95
Sung 60
출력 예
Name Score Rank
Hong 90 3
Lim 85 7
Park 88 6
Gong 75 8
Lee 100 1
Seo 90 3
Jang 75 8
Song 90 3
Kim 95 2
Sung 60 10
코드
import java.util.*;
class School {
String name;
int score;
int rank;
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
School [] a = new School[10];
for(int i=0; i<10; i++) {
a[i] = new School();
}
for(int i=0; i<a.length; i++) {
a[i].name = sc.next();
a[i].score = sc.nextInt();
a[i].rank = 1;
}
// 성적 순으로 정렬
for(int i=0; i<a.length; i++) {
for(int j=0; j<a.length; j++) {
if(a[i].score < a[j].score) { // 점수가 높을 수록 rank 숫자는 작아짐
a[i].rank++;
}
}
}
System.out.printf("%4s %5s %4s\n","Name", "Score", "Rank");
for(int i=0; i<a.length; i++) {
System.out.printf("%4s %5d %4d\n",a[i].name, a[i].score, a[i].rank);
}
}
}