![5635번: 생일](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FojIEh%2FbtsA4WIBAYx%2FFibjoDkzX310oLYfTkrflk%2Fimg.png)
![스몰스테핑](https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png)
5635번: 생일백준/문제2023. 11. 29. 14:17
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/5635
5635번: 생일
어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오.
www.acmicpc.net
언어 : Kotlin
문제 설명 :
어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오.
- 첫째 줄에 반에 있는 학생의 수 n이 주어진다. (1 ≤ n ≤ 100)
- 다음 n개 줄에는 각 학생의 이름과 생일이 "이름 dd mm yyyy"와 같은 형식으로 주어진다. 이름은 그 학생의 이름이며, 최대 15글자로 이루어져 있다. dd mm yyyy는 생일 일, 월, 연도이다. (1990 ≤ yyyy ≤ 2010, 1 ≤ mm ≤ 12, 1 ≤ dd ≤ 31) 주어지는 생일은 올바른 날짜이며, 연, 월 일은 0으로 시작하지 않는다.
- 이름이 같거나, 생일이 같은 사람은 없다.
- 첫째 줄에 가장 나이가 적은 사람의 이름, 둘째 줄에 가장 나이가 많은 사람 이름을 출력한다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 128MB
입출력 예 :
입력 | 출력 |
5 Mickey 1 10 1991 Alice 30 12 1990 Tom 15 8 1993 Jerry 18 9 1990 Garfield 20 9 1990 |
Tom Jerry |
풀이 :
import java.io.BufferedWriter
import java.io.OutputStreamWriter
data class Log(val name: String, val day: Int, val month: Int, val year: Int)
fun main() = with(System.`in`.bufferedReader()) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
val n = readLine().toInt()
val list = mutableListOf<Log>()
repeat(n) {
readLine().also {
val (name, day, month, year) = it.split(" ")
list += Log(name, day.toInt(), month.toInt(), year.toInt())
}
}
list.sortWith(compareBy<Log> { it.year }.thenBy { it.month }.thenBy { it.day })
bw.write("${list[list.lastIndex].name}\n${list[0].name}")
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
1159번: 농구 경기 (1) | 2023.11.30 |
---|---|
2902번: KMP는 왜 KMP일까? (1) | 2023.11.30 |
10102번: 개표 (1) | 2023.11.28 |
10987번: 모음의 개수 (0) | 2023.11.28 |
2935번: 소음 (1) | 2023.11.27 |
![스몰스테핑](https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png)
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!