나이가 가장 많은 순서대로 정렬하되, 나이가 같으면 생년월일에서 월이 빠른 순서로,
월이 같으면 생년월일에서 일이 빠른 순서로 정렬했습니다.
정렬한 리스트에서 나이가 가장 적은 사람인 마지막 요소를, 나이가 가장 많은 사람인 첫 번째 요소를 출력합니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.StringTokenizer;
public class p5635 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
ArrayList<Student> ar = new ArrayList<>();
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
for(int i=0; i<N; i++) {
st = new StringTokenizer(br.readLine());
String name = st.nextToken();
int day = Integer.parseInt(st.nextToken());
int month = Integer.parseInt(st.nextToken());
int year = Integer.parseInt(st.nextToken());
ar.add(new Student(name, day, month, year));
}
Collections.sort(ar, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
if(o1.year == o2.year) {
if (o1.month == o2.month) {
return o1.day - o2.day;
}
return o1.month - o2.month;
}
return o1.year - o2.year;
}
});
System.out.println(ar.get(ar.size()-1).name + "\n" + ar.get(0).name);
}
static class Student {
String name;
int day;
int month;
int year;
public Student(String name, int day, int month, int year) {
this.name = name;
this.day = day;
this.month = month;
this.year = year;
}
}
'Baekjoon' 카테고리의 다른 글
[백준] 6996번 - 애너그램 - Java (0) | 2022.12.09 |
---|---|
[백준] 1431번 - 시리얼 번호 - Java (0) | 2022.12.09 |
[백준] 11557번 - Yangjojang of The Year - Java (0) | 2022.12.03 |
[백준] 2178번 - 미로 탐색 - Java (0) | 2022.11.29 |
[백준] 4963번 - 섬의 개수 - Java (0) | 2022.11.29 |
댓글