Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 예외 전가
- redis 설정
- 예측 범위 내의 요구사항
- 의존성 설치
- 선언적 배포
- 폐쇄망
- docker
- abstract 제어자
- 특정 행 출력
- Port already in use: 9999
- 포함 관계
- 자료구조
- apt-rdepends
- 웹 애플리케이션 요청 흐름
- image 압축
- ubuntu redis
- 오프라인 설치
- 의존성 패키지 설치
- redis 명령어
- kafkaCLI
- SQL 내장 함수
- 객체
- 쿠버네티스 패턴
- redis 외부설정
- REST 성숙도 모델
- 웹 애플리케이션 아키텍처
- 도커
- Exception Handing
- 특정 행
- Oracle.DatabaseError
Archives
- Today
- Total
리꾸므
[백준5635번] 생일 본문
문제
어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 반에 있는 학생의 수 n이 주어진다. (1 ≤ n ≤ 100)
다음 n개 줄에는 각 학생의 이름과 생일이 "이름 dd mm yyyy"와 같은 형식으로 주어진다. 이름은 그 학생의 이름이며, 최대 15글자로 이루어져 있다. dd mm yyyy는 생일 일, 월, 연도이다. (1990 ≤ yyyy ≤ 2010, 1 ≤ mm ≤ 12, 1 ≤ dd ≤ 31) 주어지는 생일은 올바른 날짜이며, 연, 월 일은 0으로 시작하지 않는다.
이름이 같거나, 생일이 같은 사람은 없다.
출력
첫째 줄에 가장 나이가 적은 사람의 이름, 둘째 줄에 가장 나이가 많은 사람 이름을 출력한다.
예제 입력
5
Mickey 1 10 1991
Alice 30 12 1990
Tom 15 8 1993
Jerry 18 9 1990
Garfield 20 9 1990
예제 출력
Tom
Jerry
코드
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
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();
}
Arrays.sort(arr, new Comparator<String[]>() {
@Override
public int compare(String[] o1, String[] o2) {
if (Integer.parseInt(o1[3]) == Integer.parseInt(o2[3])) {
if (Integer.parseInt(o1[2]) == Integer.parseInt(o2[2])) {
return Integer.compare(Integer.parseInt(o1[1]), Integer.parseInt(o2[1]));
} else
return Integer.compare(Integer.parseInt(o1[2]), Integer.parseInt(o2[2]));
}
return Integer.compare(Integer.parseInt(o1[3]), Integer.parseInt(o2[3]));
}
});
System.out.println(arr[N-1][0]+"\n"+arr[0][0]);
sc.close();
}
}
여담
너무 어렵다. 프로그래머스에서 백준으로 옮겼는데,
예제입력부터 스캐너로 받아야한다는게 이해가 안갔다.
식은 어떻게 풀면될지는 보자마자 생각났는데.... 정작 적용을 못하고 시간초과해버렸다.
프로그래머스 레벨1만풀면서 쉽다쉽다생각했던게 정말 오만이었구나싶다...
열심히해야겠다!
'발걸음 > 알고리즘' 카테고리의 다른 글
[백준 18125 Java] 고양이 사료 (0) | 2022.10.11 |
---|---|
[백준 2908] 상수 (0) | 2022.10.11 |
[백준4673번] 셀프 넘버 (0) | 2022.09.27 |
[프로그래머스 Level1_Java] 키패드 누르기 (0) | 2022.09.07 |
[프로그래머스 Level1_Java] [1차]비밀번호 (0) | 2022.09.02 |