728x90
문제출처: https://www.acmicpc.net/problem/5635
5635번: 생일
어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오.
www.acmicpc.net
1. 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
n = int(input())
arr =[]
for _ in range(n):
student =input().split()
#name을 제외한 나머지 int형으로 변환
student [1:] =map(int, student[1:])
#학생 정보 arr 리스트에 넣어줌
arr.append(student)
arr.sort(key =lambda student: (student[3],student[2],student[1]))
#나이가 제일 적은 사람
print(arr[-1][0])
#나이가 제일 많은 사람
print(arr[0][0])
|
cs |
2. 해결과정
학생들 이름, 생일을 저장하는 리스트를 arr로 지정.
반복문 돌면서 학생들 데이터 입력 받고, name을 제외하고는 나머지는 숫자이기 때문에 int형으로 변환시켜줘야한다.
학생들의 정보를 arr에 넣어주고, 오름차순으로 정렬을 해준다.
뒤에 있을 수록 연 월 일이 커지기 때문에 젊은 사람이 된다.
728x90
'공부 자료 > 알고리즘' 카테고리의 다른 글
(Python/파이썬) 백준 10845번 - 큐 (0) | 2021.08.18 |
---|---|
(Python/파이썬) 백준 2504번 - 괄호의 값 (0) | 2021.08.18 |
(Python/파이썬) 백준 2822번 - 점수 계산 (0) | 2021.08.13 |
(Python/파이썬) 백준 12865번 - 평범한 배낭 (0) | 2021.08.13 |
(Python/파이썬) 백준 5576번 - 콘테스트 (0) | 2021.08.12 |