-
[백준 / Python] 10825번 국영수 | 초코더알고리즘/백준 2020. 1. 13. 17:51
https://www.acmicpc.net/problem/10825
10825번: 국영수
첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 100보다 작거나 같은 자연수이다. 이름은 알파벳 대소문자로 이루어진 문자열이고, 길이는 10자리를 넘지 않는다.
www.acmicpc.net
접근법
sort()와 lambda를 이용해서 정렬시킨다는 것이 포인트였습니다.
그런데 국어점수와 수학점수는 높은순대로 정렬시켜야해서 reverse=True를 사용해주어야 하는가 했는데, 정렬조건이 여러개일때는 사용이 불가하였습니다.
어차피 모두 정수이므로 '-'만 붙여서 정렬해주면 반대로 정렬되는 간단한 방법이었습니다!
나의풀이
n=int(input()) grade=[] for i in range(n): grade.append(list(input().split())) grade.sort(key=lambda x:(-int(x[1]),int(x[2]),-int(x[3]),x[0])) for i in grade: print(''.join(i[0]))
'알고리즘 > 백준' 카테고리의 다른 글
[백준 / Python] 5052번 전화번호 목록 | 초코더 (1) 2020.01.14 [백준 / Python] 3047번 ABC | 초코더 (0) 2020.01.13 [백준 / Python] 11004번 K번째 수 | 초코더 (0) 2020.01.13 [백준 / Python] 1026번 보물 | 초코더 (0) 2020.01.13 [백준 / Python] 2108번 통계학 | 초코더 (0) 2020.01.13