https://www.acmicpc.net/problem/10825
10825번: 국영수
첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1
www.acmicpc.net
조건에 맞게 정렬을 하면 된다.
파이썬에서 조건 여러개를 이용하여 정렬을 할 때는 sort메소드와 lambda를 이용하면 된다. 내림차순으로 정렬할 때는 조건에 - 를 붙여주면 된다.
import sys
N = int(sys.stdin.readline())
arr = []
for _ in range(N):
name, k, e, m = sys.stdin.readline().split()
arr.append([name, int(k), int(e), int(m)])
arr.sort(key = lambda x: (-x[1], x[2], -x[3], x[0]))
for i in range(N):
print(arr[i][0])
'알고리즘💻 > 이분탐색&정렬&분할정복' 카테고리의 다른 글
BOJ 11582번: 치킨 TOP N (0) | 2021.07.19 |
---|---|
BOJ 1448: 삼각형 만들기 (0) | 2021.07.19 |
BOJ 18870번: 좌표 압축 (0) | 2021.05.05 |
BOJ 2805번: 나무 자르기 (0) | 2021.01.29 |
BOJ 3758번: KCPC (0) | 2021.01.29 |