1 λΆ„ μ†Œμš”

πŸ“ [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을 값을 λΆ€μ—¬ν•΄μ£Όμ—ˆλ‹€.
μ‰½μ§€λ§Œ μ‰½μ§€μ•Šμ€ 문제? κ°œλ…λ§Œ 잘 μ•Œκ³ μžˆμœΌλ©΄ μ‰¬μ› λ˜ 것 κ°™λ‹€.