파이썬에서는 정렬 기준을 key = lambda로 지정해줄 수 있다. 기존에는 정렬 기준이 1개인 문제만 봤었는데 2개 이상이어서 처음에는 당황했지만 괄호 안에 기준을 나열하면 되는 거라 생각보다 쉽게 풀었다. 하지만 시간초과 판정을 받았는데 반복문으로 여러 줄 입력받는 상황에서는 sys.stdin.readline()을 사용해야 시간초과 판정이 발생하지 않는다고 한다. 앞으로는 간단한 입력이 아닌 이상 sys.stdin.readline()를 사용해야겠다.
import sys
n = int(input())
data = []
for i in range(n):
name, kor, eng, math = sys.stdin.readline().split()
data.append([name, int(kor), int(eng), int(math)])
data.sort(key = lambda x: (-x[1], x[2], -x[3], x[0]))
for i in data:
print(i[0])
시간복잡도 : O(nlogn)
유익한 글 잘 봤습니다, 감사합니다.