이번 문제는 입력되는 이름, 일, 월, 연도를 2차원 배열로 저장하고 우선순위를 연도, 월, 일로 한 정렬을 통하여 해결하였다.
- 학생의 수인 n을 입력받는다.
- 학생의 생년월일과 이름이 저장되는 배열 bd를 선언한다.
- 0부터 n까지의 i에 대한 for문을 돌린다.
-> 공백을 경계로 이름(name), 일(d), 월(m), 연도(y)를 입력받는다.
-> bd배열에 name, d, m, y를 원소로 하는 배열을 넣는다. (2차원 배열)
- bd배열을 key=lambda를 사용하여 y, m, d순으로 우선순위를 가지도록 오름차순 정렬한다. (x[3]=y, x[2]=m, x[1]=d)
- bd의 가장 뒤에 있는 배열의 첫번째 원소(name)를 출력한다. 이는 가장 나이가 적은 사람이다.
- bd의 가장 앞에 있는 배열의 첫번째 원소(name)를 출력한다. 이는 가장 나이가 많은 사람이다.
Code
n=int(input())
bd=[]
for i in range(n):
name, d, m, y=input().split()
bd.append([name, int(d), int(m), int(y)])
bd.sort(key=lambda x:(x[3],x[2],x[1]))
print(bd[-1][0])
print(bd[0][0])