도현이네 반 학생 N명의 이름과 국어, 영어, 수학 점수가 주어진다. 이때, 다음과 같은 조건으로 학생의 성적을 정렬하는 프로그램을 작성하시오.
한 줄씩 받아오는 입력에서 문자와 숫자가 섞여있다. 처음엔 모두 str
로 받아와 리스트로 저장한 뒤 국어
, 영어
, 수학
점수만 int
로 형변환했다. 입력을 모두 받으면 lambda
식을 이용해서 정렬한다.
lambda
식에서 내림차순은 음수(-
)로 표현 가능하다.
n = int(input())
score_list = []
for i in range(n):
score_list.append(list(map(str, input().split())))
score_list[i][1], score_list[i][2], score_list[i][3] = int(score_list[i][1]), int(score_list[i][2]), int(score_list[i][3])
score_list.sort(key=lambda x: [-x[1], x[2], -x[3], x[0]])
for i in range(n):
print(score_list[i][0])
채점이 4분 걸려서 손에 땀을 쥐게 한 문제다.