시간&메모리 제한
문제
입력&출력
문제풀이
package com.Back;
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 Back_5635 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
ArrayList<person> arr = new ArrayList<>();
StringTokenizer st;
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());
arr.add(new person(year,month,day,name));
}
Collections.sort(arr);
System.out.println(arr.get(arr.size()-1).name);
System.out.println(arr.get(0).name);
}
static class person implements Comparable<person>{
int year;
int month;
int day;
String name;
public person(int year, int month, int day, String name) {
this.year = year;
this.month = month;
this.day = day;
this.name = name;
}
@Override
public int compareTo(person o) {
if(o.year==this.year) {
if(this.month==o.month) {
return this.day-o.day;
}
return this.month-o.month;
}
return this.year-o.year;
}
}
}
※ 내 생각
이 문제는 정렬을 이용하는 문제입니다.
먼저 연도, 월, 일을 비교하여 나이 순서대로 정렬을 진행합니다.
또한 정렬이 진행된 상태에서 0번 인덱스 및 마지막 인덱스를 출력하면 됩니다.
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_2824 최대공약수(자바) / 구현 & 수학 (0) | 2021.10.02 |
---|---|
백준_9461 파도반 수열(자바) / DP (0) | 2021.09.30 |
백준_3107 IPv6 (자바) / 문자열 (0) | 2021.09.26 |
백준_1292 쉽게 푸는 문제(자바) / 구현 (0) | 2021.09.24 |
백준 10610 30 (자바) / 문자열 , 그리디 알고리즘 (0) | 2021.09.23 |