문제
해결 과정
- 국어 점수가 감소하는 순서 -> 국어 점수 기준으로 내림차순
- 영어 점수가 증가하는 순서 -> 영어 점수 기준으로 오름차순
- 수학 점수가 감소하는 순서 -> 수학 점수 기준으로 내림차순
- 이름 사전 순으로 증가 -> 이름 기준으로 오름차순
student.sort(key = lambda x:(-int(x[1]),int(x[2]),-int(x[3]),x[0]))
- sort는 기본값 오름차순 정렬
reverse = True
을 하지 않은 이유: 이름을 사전 순으로 증가하도록 만드는 (?) 방법을 모르겠어서 디폴트를 오름차순으로 하고 숫자들에 -
를 붙여서 내림차순으로 변경했음
int(x[1])
은 오름차순 -> -int(x[1])
는 내림차순
int(x[2])
은 오름차순
int(x[3])
은 오름차순 -> -int(x[3])
는 내림차순
x[0]
은 오름차순
시행착오
풀이
import sys
n = int(sys.stdin.readline())
student = []
for _ in range(n):
student.append(sys.stdin.readline().split())
student.sort(key = lambda x:(-int(x[1]),int(x[2]),-int(x[3]),x[0]))
for i in student:
print(i[0])