[ BOJ / Python ] 5635번 생일

황승환·2021년 12월 14일
0

Python

목록 보기
47/498

이번 문제는 입력되는 이름, 일, 월, 연도를 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])

profile
꾸준함을 꿈꾸는 SW 전공 학부생의 개발 일기

0개의 댓글