개발자 톡
연습문제 톡
[HSAT 5회 정기 코딩 인증평가 기출] 성적 평가
런타임에러 뜨는데 도움 주시면 정말 감사하겠습니다.
- 등록일
- 2024-02-18 22:09:58
- 조회수
- 312
- 작성자
- castela0119
import java.io.*; import java.util.*; public class Main { static int N; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); StringTokenizer st1 = new StringTokenizer(br.readLine()); StringTokenizer st2 = new StringTokenizer(br.readLine()); StringTokenizer st3 = new StringTokenizer(br.readLine()); Student[] test1 = new Student[N]; Student[] test2 = new Student[N]; Student[] test3 = new Student[N]; Student[] total = new Student[N]; // test1 점수 배열 for(int i=0; i<3; i++) { int num = Integer.parseInt(st1.nextToken()); test1[i] = new Student(i, num); } // test2 점수 배열 for(int i=0; i<3; i++) { int num = Integer.parseInt(st2.nextToken()); test2[i] = new Student(i, num); } // test3 점수 배열 for(int i=0; i<3; i++) { int num = Integer.parseInt(st3.nextToken()); test3[i] = new Student(i, num); } for(int i=0; i<3; i++) { total[i] = new Student(i, 0); } // total 점수 배열 만들기 for(int i=0; i<3; i++) { total[i].score += test1[i].score; total[i].score += test2[i].score; total[i].score += test3[i].score; } // test1 등수 매기기 for(int i=0; i<N-1; i++) { for(int j=i+1; j<N; j++) { if(test1[i].score > test1[j].score) { test1[i].rank -= 1; } else if(test1[i].score < test1[j].score) { test1[j].rank -= 1; } else { test1[i].rank -= 1; test1[j].rank -= 1; } } } // test2 등수 매기기 for(int i=0; i<N-1; i++) { for(int j=i+1; j<N; j++) { if(test2[i].score > test2[j].score) { test2[i].rank -= 1; } else if(test2[i].score < test2[j].score) { test2[j].rank -= 1; } else { test2[i].rank -= 1; test2[j].rank -= 1; } } } // test3 등수 매기기 for(int i=0; i<N-1; i++) { for(int j=i+1; j<N; j++) { if(test3[i].score > test3[j].score) { test3[i].rank -= 1; } else if(test3[i].score < test3[j].score) { test3[j].rank -= 1; } else { test3[i].rank -= 1; test3[j].rank -= 1; } } } // total 등수 매기기 for(int i=0; i<N-1; i++) { for(int j=i+1; j<N; j++) { if(total[i].score > total[j].score) { total[i].rank -= 1; } else if(total[i].score < total[j].score) { total[j].rank -= 1; } else { total[i].rank -= 1; total[j].rank -= 1; } } } StringBuilder sb1 = new StringBuilder(); StringBuilder sb2 = new StringBuilder(); StringBuilder sb3 = new StringBuilder(); StringBuilder sb4 = new StringBuilder(); for(int i=0; i<N; i++) { if(i == N-1) { sb1.append(test1[i].rank); } else { sb1.append(test1[i].rank).append(' '); } } for(int i=0; i<N; i++) { if(i == N-1) { sb2.append(test2[i].rank); } else { sb2.append(test2[i].rank).append(' '); } } for(int i=0; i<N; i++) { if(i == N-1) { sb3.append(test3[i].rank); } else { sb3.append(test3[i].rank).append(' '); } } for(int i=0; i<N; i++) { if(i == N-1) { sb4.append(total[i].rank); } else { sb4.append(total[i].rank).append(' '); } } System.out.println(sb1); System.out.println(sb2); System.out.println(sb3); System.out.println(sb4); } public static class Student{ int idx = 0; int score = 0; int rank = N; public Student(int idx, int score) { this.idx = idx; this.score = score; } } }
#[HSAT_5회_정기_코딩_인증평가_기출]_성적_평가