문제 풀이 및 개발 공간

[백준] 10825번 국영수 (silver 4 본문

백준공부/java

[백준] 10825번 국영수 (silver 4

gomduri43 2023. 10. 29. 16:02

import java.io.*;
import java.util.*;

class Point{
    String name;
    int k;
    int e;
    int m;
    public Point(String name, int k,int e,int m){
        this.name=name;
        this.k=k;
        this.e=e;
        this.m=m;
    }
}


public class Main{
    public static void main(String[]args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;
        int n=Integer.valueOf(br.readLine());
        Point[] num=new Point[n];
        for(int i=0; i<n; i++){
            st=new StringTokenizer(br.readLine());
            num[i]=new Point(st.nextToken(), Integer.valueOf(st.nextToken()), Integer.valueOf(st.nextToken()), Integer.valueOf(st.nextToken()) );
        }
        Arrays.sort(num, new Comparator<Point>(){
           public int compare(Point o1, Point o2){
               if(o1.k==o2.k && o2.e==o1.e){
                   if(o1.m==o2.m){
                       return o1.name.compareTo(o2.name);
                   }
                   return -(o1.m-o2.m);
               }
               else if(o1.k==o2.k){
                   return (o1.e-o2.e);
               }
               else{
                   return -(o1.k-o2.k);
               }
           }
        });

        for(Point e:num){
            bw.write(e.name+"\n");
        }
        bw.flush();

    }
}