전공/백준
10825
yha97
2022. 11. 8. 19:39
날짜 : 2022. .
사용 언어 : python
문제
코드
import sys
n = int(sys.stdin.readline())
score = []
for i in range(n):
name, kor, eng, math = map(str, sys.stdin.readline().split())
score.append([name, int(kor), int(eng), int(math)])
score.sort(key = lambda x : x[0]) # 모든 점수가 같으면 이름이 사전순으로 증가
score.sort(key = lambda x : -x[3]) # 국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로
score.sort(key = lambda x : x[2]) # 국어 점수가 같으면 영어 점수가 증가하는 순서로
score.sort(key = lambda x : -x[1]) # 국어 점수가 감소하는 순서로
for i in score:
print(i[0])
알게된 점
- lambda 함수를 활용함으로써 정렬에 조건을 첨가하여 문제를 해결할 수 있었다.
- 조건에 대하여 우선순위가 주어졌고 코드는 우선순위의 역순으로 진행함으로써 올바르게 순위를 정립하였다.
참고 사이트
- https://haesoo9410.tistory.com/193
<파이썬> 2차원 배열 정렬
1. 기본적인 리스트 정렬 * sort 정렬 - sort는 리스트에서 제공되는 기본적인 메서드이다. 주로 아래와 같이 사용한다. lst = [2, 3, 5, 6, 1, 4] lst.sort() print(lst) # [1, 2, 3, 4, 5, 6] - sort 는 기본적으로 오름
haesoo9410.tistory.com