728x90
반응형
https://www.acmicpc.net/problem/5635
문제의 접근 방법
- 가장 나이가 많은 사람과 적은 사람을 어떻게 정렬할 수 있을지
- 여러 개의 값을 입력 받아 리스트에 저장하기
내가 막혔던 부분
나이가 많은 사람이라는 것은 내림차순으로 정렬했을 때, 가장 첫 번째 인덱스 값을 의미하고
나이가 적은 사람이라는 거슨 오름차순으로 정렬했을 때, 가장 첫 번째 인덱스 값을 의미한다.
문제 풀이 방법
n명의 학생을 의미하는 n값 입력 받기 -> 나이가 많은 순서대로, 적은 순서대로 정렬할 수 있게 빈 리스트 두 개 arr1, arr2 선언 -> n명 만큼 학생 이름, 생년월일 입력받기 -> 입력 받은 것을 생년월일을 앞으로 해서 리스트에 저장 (나이를 기준으로 정렬하기 위해서) -> arr1은 오름차순으로, arr2는 내림차순으로 정렬하기 -> 가장 앞의 배열에서 이름을 출력할 수 있는 인덱스 값을 입력하여 출력하기
소스코드
n = int(input())
arr1 = []
arr2 = []
for _ in range(n):
name, dd, mm, yyyy = input().split()
dd = int(dd)
mm = int(mm)
yyyy = int(yyyy)
arr1.append([yyyy,mm,dd,name])
arr2.append([yyyy,mm,dd,name])
arr1.sort()
arr2.sort(reverse=True)
print(arr2[0][3]) # 내림차순 정렬 = 가장 나이가 많은 사람
print(arr1[0][3]) # 오름차순 정렬 = 가장 나이가 적은 사람
728x90
반응형
'백준 write-up > 정렬 & 그리디' 카테고리의 다른 글
[백준] 사탕 : 11256번 - Python (0) | 2022.06.12 |
---|---|
[백준] 행복 유치원 : 13164번 - Python (0) | 2022.06.10 |
[백준] 동일한 단어 그룹화하기 : 16499번 - Python (0) | 2022.06.08 |
[백준] 비트 우정지수 : 12782번 - Python (0) | 2022.06.06 |
[백준] 이장님 초대 : 9237번 - Python (0) | 2022.06.04 |