문제 분류 수업 진도 대회 채점현황 순위 질문게시판
게임
스도쿠 타이핑 리듬 타자게임 타이핑 테트리스 타이핑 인베이더 타이핑 지뢰찾기 8192 공룡게임 타이핑 플래피버드 랭킹
로그인

7042 : 성적 다중 정렬 (lambda)

•시간제한: 1.000 S •메모리제한: 256 MB •제출: 1 •통과: 1 •만든사람: suakii

7042 : 성적 다중 정렬 (lambda)

시간 1.000s · 메모리 256MB · 제출 1 · 정답 1

문제 설명

N명의 학생 이름과 국어, 영어, 수학 성적이 주어집니다. 다음 조건에 따라 학생들을 정렬하여 이름을 출력하는 프로그램을 작성하십시오.

[정렬 기준]
1. 세 과목의 점수 합계(총점)가 높은 학생이 먼저 나옵니다. (총점 내림차순)
2. 만약 총점이 같다면, 국어 점수가 높은 학생이 먼저 나옵니다. (국어 점수 내림차순)
3. 만약 국어 점수도 같다면, 학생의 이름이 사전 순으로 빠른 학생이 먼저 나옵니다. (이름 오름차순, 알파벳/한글 사전순)

[제약 조건]
• 학생 수 $N$: $1 \le N \le 200$
• 각 점수: $0 \le \text{점수} \le 100$ (정수)

입력 설명

첫째 줄에 학생 수 N이 주어집니다. (1 ≤ N ≤ 200)
둘째 줄부터 N개의 줄에 걸쳐 각 학생의 이름과 국어, 영어, 수학 점수가 공백으로 구분되어 주어집니다.
이름은 알파벳 대소문자 또는 한글로 구성된 1자 이상 10자 이하의 문자열이며, 점수는 0 이상 100 이하의 정수입니다.

출력 설명

정렬된 순서대로 학생의 이름을 한 줄에 하나씩 출력합니다.

입력 예시
COPY
복사되었습니다!

4
Hong 80 90 100
Kim 90 90 90
Lee 100 80 90
Park 80 90 100

출력 예시
COPY
복사되었습니다!

Lee
Kim
Hong
Park

도움

파이썬의 sorted() 함수나 리스트의 .sort() 메소드에서 key=lambda x: (-x[1], -x[2], x[0]) 와 같이 다중 조건 튜플을 지정하면 간결하게 다중 정렬을 수행할 수 있습니다.

출처/분류

NOTICE  —  BFStudy OJ 정보샘
애들아, 문제 많이 풀고 게임 잠깐 하는거지?
— 정보샘