몽상실현개발주의

[BOJ] 10825 / 국영수 / Python 파이썬 본문

Algorithm PS/BOJ

[BOJ] 10825 / 국영수 / Python 파이썬

migrationArc 2021. 5. 21. 13:32

[BOJ] 10825 / 국영수 / Python 파이썬

[BOJ] 10825 / 국영수 / Python 파이썬

https://www.acmicpc.net/problem/10825

 

10825번: 국영수

첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1

www.acmicpc.net

 

풀이

이전 정렬 문제보다 조금 더 복잡한 조건으로 정렬하는 문제이다.

 

이 문제 또한 lambda 를 이용하여 정렬 조건을 만든후, sort() 에 대입해 주면 간단히 풀 수 있다.

 

import sys

N = int(sys.stdin.readline())
studentWithScore = []
for _ in range(N):
    studentWithScore.append(list(map(lambda x: int(x) if x.isdecimal() else x,sys.stdin.readline().split())))
    
for s in sorted(studentWithScore, key = lambda x: (-x[1], x[2], -x[3], x[0])):
    print(s[0])

 

※ 몇 문제를 연속으로 lambda 를 활용하여 풀다보니, 점점 익숙해지고 있다.

Comments