誕生日
質問する
誕生日
に近づく
マイコード
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static ArrayList<Student> list = new ArrayList<>();
public static void main(String[] args) throws IOException {
int n = Integer.parseInt(br.readLine());
StringTokenizer st;
for (int i = 0; i < n; i++) {
st = new StringTokenizer(br.readLine()," ");
list.add(new Student(st.nextToken(), Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken())));
}
Collections.sort(list);
System.out.println(list.get(0).getName());
System.out.println(list.get(n-1).getName());
}
static class Student implements Comparable<Student> {
private String name;
private int day;
private int month;
private int year;
public Student(String name, int day, int month, int year) {
this.name = name;
this.day = day;
this.month = month;
this.year = year;
}
@Override
public int compareTo(Student o) {
if (this.getYear() < o.getYear())
return 1;
else if (this.getYear() > o.getYear()) {
return -1;
} else if (this.getMonth() < o.getMonth()) {
return 1;
} else if (this.getMonth() > o.getMonth()) {
return -1;
} else if (this.getDay() < o.getDay()) {
return 1;
}
return -1;
}
public String getName() {
return name;
}
public int getDay() {
return day;
}
public int getMonth() {
return month;
}
public int getYear() {
return year;
}
}
}
入力値はArrayList
に挿入されてソートされます.Getter
パターンを開発するとよく使われますが…Comparable
インタフェースを用いてoverrideソートを行うパターンがしばしば現れる.Reference
この問題について(誕生日), 我々は、より多くの情報をここで見つけました https://velog.io/@songs4805/BOJ5635번-생일テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol