본문 바로가기

코딩테스트/BOJ

[백준/파이썬] 5635번: 생일 (Python)

문제

www.acmicpc.net/problem/5635

 

5635번: 생일

어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오.

www.acmicpc.net

풀이

n = int(input())
data = []
minyear = 2021
for i in range(0,n):
    data.append(input().split())
    
data.sort(key=lambda x:(int(x[3]), int(x[2]), int(x[1])))

print(data[-1][0])
print(data[0][0])

정리

년, 월, 일을 lambda표현식을 이용해 오름차순으로 정렬해준다.

 

data.sort(key=lambda x: x[3]) 은 x[3]을 기준으로 오름차순 정렬

 

data.sort(key=lambda x: x[3], x[2]) 은 x[3]이 같을경우, x[2]를 기준으로 오름차순 정렬

 

data.sort(key=lambda x: -x[3])은 x[3]을 기준으로 내림차순 정렬