BOJ_S5_5635
π [S5_5635] μμΌ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;
public class Main {
// κ° μ
λ ₯λ°λ class
public static class date implements Comparable<date> {
int year;
int month;
int day;
String name;
public date(String name, int day, int month, int year) {
super();
this.year = year;
this.month = month;
this.day = day;
this.name = name;
}
// λ€μ€μ λ ¬
@Override
public int compareTo(date o) {
int res = 0;
// λ
λ λΉκ΅
if(this.year > o.year) res = 1;
else if(this.year < o.year) res = -1;
// λ
λ κ°μ κ²½μ° -> μ, μΌ λΉκ΅
else {
if(this.month > o.month) res = 1;
else if(this.month < o.month) res = -1;
// μ κ°μ κ²½μ° μΌ λΉκ΅
else {
if(this.day > o.day) res = 1;
else if(this.day < o.day) res = -1;
else res = 1;
}
}
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
// **** input start ****
int N = Integer.parseInt(br.readLine());
ArrayList<date> list = new ArrayList<>();
// κ° μ
λ ₯
for (int i = 0; i < N; i++) {
st = new StringTokenizer(br.readLine(), " ");
list.add(new date(st.nextToken(), Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()),
Integer.parseInt(st.nextToken())));
}
// μ λ ¬
Collections.sort(list);
// **** input end ****
// κ°μ₯ μ΄λ¦° μ¬λ μΆλ ₯
System.out.println(list.get(N-1).name);
// κ°μ₯ λ§μ μ¬λ μΆλ ₯
System.out.println(list.get(0).name);
}
}
π€ λμ μκ°
λ€μ€ μ λ ¬ λ¬Έμ μ΄λ€.
μ½κ° μ²μλ³΄κ³ λ€μ€ μ λ ¬ λ¬Έμ λΌ λΉν©νμ§λ§ classλ₯Ό λ§λ€μ΄ μ΄λ¦κ³Ό λ
λ, μ, μΌμ μ
λ ₯λ°κ³ λ
λ, μ, μΌ μμλλ‘ μ λ ¬μ ν΄μ£Όμλ€.
κ·Έλ¦¬κ³ κ°μ₯ μ΄λ¦°μ¬λ, κ°μ₯ λ§μμ¬λμ μΆλ ₯ν΄μ£Όμλ€.
comparableμ νμ©νλλ° λμ κ°κ³Ό κ·Έ λ€μ κ°μ λΉκ΅ν΄μ 1μ λ°ννλ©΄ κ΅νμ νμ§ μκ³ -1μ λ°ννλ©΄ κ΅νμ νλ€.
κ·Έλμ λ
λ, μ, μΌ μμλλ‘ κ°μ λΉκ΅νλ©΄μ κ²½μ°λ§λ€ 1,-1μ κ°μ λΆμ¬ν΄μ£Όμλ€.
μ½μ§λ§ μ½μ§μμ λ¬Έμ ? κ°λ
λ§ μ μκ³ μμΌλ©΄ μ¬μ λ κ² κ°λ€.