💡Problem Solving/BOJ

[BOJ 10825] 국영수 (Python)

gom20 2022. 11. 19. 15:26

문제

https://www.acmicpc.net/problem/10825

 

10825번: 국영수

첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1

www.acmicpc.net

 

풀이

Python 다중 정렬

sort 라이브러리 사용 

labmda로 튜플의 몇 번째 원소부터 정렬할 지 명시 

오름차순은 그대로, 내림차순은 - 붙여서 

 

소스코드

n = int(input())
a = []
for _ in range(n):
    data = list(input().split())
    a.append((data[0], int(data[1]), int(data[2]), int(data[3])))

result = sorted(a, key = lambda x: (-x[1], x[2], -x[3], x[0]))
for r in result:
    print(r[0])