반응형
5635번: 생일
어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오.
www.acmicpc.net
문제
어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 반에 있는 학생의 수 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 |
풀이
입력받은 항목의 연월일만 int 형으로 수정한다.
연-월-일 순서로 배치하여 sort 함수를 통해 정렬하면 태어난 일자가 오름차순으로 정렬된다.
따라서 첫 번째 인덱스에는 나이가 가장 많은 사람, 마지막 인덱스에는 적은 사람이 놓이게 된다.
import sys
input = sys.stdin.readline
lst = []
for _ in range(int(input())):
n,d,m,y = input().rstrip().split()
d,m,y = map(int,(d,m,y))
lst.append((y,m,d,n))
lst.sort()
print(lst[-1][3])
print(lst[0][3])
반응형
'알고리즘 연습 > 구현, 문자열' 카테고리의 다른 글
[🥉2 / 백준 6359 / 파이썬] 만취한 상범 (0) | 2021.12.10 |
---|---|
[🥈2 / 백준 1138 / 파이썬] 한 줄로 서기 (0) | 2021.12.07 |
[🥉2 / 백준 2864 / 파이썬] 5와 6의 차이 (0) | 2021.12.01 |
[🥉2 / 백준 5598 / 파이썬] 카이사르 암호 (0) | 2021.11.24 |
[🥉2 / 백준 7567 / 파이썬] 그릇 (0) | 2021.11.22 |