반응형
10825번: 국영수
첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1
www.acmicpc.net
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
String[][] students = new String[N][4];
while(N-->0) students[N] = br.readLine().split(" ");
Arrays.stream(students).sorted(new Comparator<String[]>() {
@Override
public int compare(String[] o1, String[] o2) {
if (o1[1].equals(o2[1])){
if (o1[2].equals(o2[2])){
if (o1[3].equals(o2[3]))
return o1[0].compareTo(o2[0]);
return Integer.parseInt(o2[3])-Integer.parseInt(o1[3]);
}
return Integer.parseInt(o1[2])-Integer.parseInt(o2[2]);
}
return Integer.parseInt(o2[1])-Integer.parseInt(o1[1]);
}
}).forEach(strings -> sb.append(strings[0]+"\n"));
System.out.print(sb);
}
}

반응형
'Algorithm' 카테고리의 다른 글
백준 3273번 두 수의 합 [ Java ] (0) | 2021.01.03 |
---|---|
백준 1431번 시리얼 번호 [ Java ] (0) | 2021.01.03 |
백준 10813번 공 바꾸기 [ Java ] (0) | 2021.01.03 |
백준 10819번 차이를 최대로 [ Java ] (0) | 2021.01.03 |
백준 13913번 숨바꼭질4 [ Java ] (0) | 2021.01.03 |