소스코드
import sys
n = int(sys.stdin.readline())
student = []
for i in range(n) :
[a,b,c,d] = list(sys.stdin.readline().split())
student.append([a,b,c,d])
student.sort(key = lambda x : (-int(x[1]), int(x[2]), -int(x[3]), x[0]))
for i in range(n) :
print(student[i][0])
sort의 lambda 조건식을 사용할 줄만 알면 되는 문제이다.
key = lambda 뒤에 인자를 조건의 우선순위대로 차례로 입력하면 된다.
그리고 내림차순은 (-) 를 붙혀준다.
이름을 제외한 과목의 성적은 int 형 시켜줘야 올바른 정렬이 가능하다.
그리고 문자열 정렬은 원래 대문자 -> 소문자로 오름차순 정렬되므로 추가로 해줄 건 없다..!
'알고리즘 > 이것저것' 카테고리의 다른 글
[프로그래머스] 행렬의 덧셈 - 파이썬(python) (0) | 2022.09.01 |
---|---|
[프로그래머스] 2022 KAKAO TECH INTERNSHIP 성격 유형 검사하기 - 파이썬(python) (0) | 2022.09.01 |
[Python] 백준 10814번: 나이순 정렬 (0) | 2021.03.08 |
[Python] 백준 11651번: 좌표 정렬하기 2 (0) | 2021.03.08 |
[Python] 백준 11650번: 좌표 정렬하기 (0) | 2021.03.08 |
댓글