백준
백준 5635 생일(Java)
Park DJ
2023. 1. 23. 13:31
https://www.acmicpc.net/problem/5635
5635번: 생일
어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오.
www.acmicpc.net
해석 및 팁
이 문제는 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 문제입니다. 먼저 학생들의 정보를 배열로 입력받은 후 생일을 비교하여 최대와 최소일 때의 인덱스 값을 찾아내어 이름을 출력하면 됩니다.
Java 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int max = 0;
int min = 0;
int n = sc.nextInt();
String[][] arr = new String[n][4];
for(int i = 0; i < n; i++) {;
arr[i][0] = sc.next();
arr[i][1] = sc.next();
arr[i][2] = sc.next();
arr[i][3] = sc.next();
}
for(int i = 0; i < n; i++) {
if(Integer.parseInt(arr[i][3]) > Integer.parseInt(arr[min][3])) min = i;
else if(Integer.parseInt(arr[i][3]) == Integer.parseInt(arr[min][3]) && Integer.parseInt(arr[i][2]) > Integer.parseInt(arr[min][2])) min = i;
else if(Integer.parseInt(arr[i][3]) == Integer.parseInt(arr[min][3]) && Integer.parseInt(arr[i][2]) == Integer.parseInt(arr[min][2])
&& Integer.parseInt(arr[i][1]) > Integer.parseInt(arr[min][1])) min = i;
}
for(int i = 0; i < n; i++) {
if(Integer.parseInt(arr[i][3]) < Integer.parseInt(arr[max][3])) max = i;
else if(Integer.parseInt(arr[i][3]) == Integer.parseInt(arr[max][3]) && Integer.parseInt(arr[i][2]) < Integer.parseInt(arr[max][2])) max = i;
else if(Integer.parseInt(arr[i][3]) == Integer.parseInt(arr[max][3]) && Integer.parseInt(arr[i][2]) == Integer.parseInt(arr[max][2])
&& Integer.parseInt(arr[i][1]) < Integer.parseInt(arr[max][1])) max = i;
}
System.out.println(arr[min][0]);
System.out.println(arr[max][0]);
}
}