https://www.acmicpc.net/problem/10825
10825번: 국영수
첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1
www.acmicpc.net
'''
10825번: 국영수 / silver 4 / 정렬
'''
import sys
input = sys.stdin.readline
n = int(input())
arr = []
for i in range(n):
arr.append(list(map(str, input().split())))
arr.sort(key=lambda x: str(x[0]))
arr.sort(key=lambda x: int(x[3]), reverse=True)
arr.sort(key=lambda x: int(x[2]))
arr.sort(key=lambda x: int(x[1]), reverse=True)
for i in arr:
print(i[0])
여러 값들을 중복?해서 정렬하는 방법 아는 것이 핵심!
- sort() 와 lambda 사용
1. 이름을 먼저 오름차순으로 정렬
2. 수학을 내림차순으로 정렬
3. 영어를 오름차순으로 정렬
4. 국어를 내림차순으로 정렬
=> 조건에 맞게 정렬이 완료 됨
'백준 문제풀이' 카테고리의 다른 글
2776번: 암기왕 / silver 4 / set (0) | 2023.02.13 |
---|---|
1072번: 게임 / silver 3 / 이분탐색 (0) | 2023.02.12 |
10211번 : Maximum Subarray / silver 4 / 누적합 (0) | 2023.02.10 |
16139번: 인간-컴퓨터 상호작용 / silver 1 / 누적합, ord() (0) | 2023.02.09 |
3020번: 개똥벌레 / gold 5 / 누적합 (0) | 2023.02.08 |