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]);
}
}
'백준' 카테고리의 다른 글
백준 11576 Base Conversion(Java) (0) | 2023.01.23 |
---|---|
백준 13301 타일 장식물(Java) (0) | 2023.01.23 |
백준 1652 누울 자리를 찾아라(Java) (1) | 2023.01.23 |
백준 2839 설탕 배달(Java) (0) | 2023.01.23 |
백준 14916 거스름돈(Java) (0) | 2023.01.23 |