개발 연습장/백준 문제풀이

[파이썬, Python] 백준 10825: 국영수

LooanCheong 2023. 5. 24. 11:41
반응형

문제

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

 

10825번: 국영수

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

www.acmicpc.net

코드

n = int(input())
score = list()

for _ in range(n):
    s = input().split()
    score.append(s)

score.sort(key = lambda x: (-int(x[1]), int(x[2]), -int(x[3]), x[0]))

for i in score:
    print(i[0])

설명

우선 n과 주어진 점수들을 넣을 리스트를 하나 생성해 준다.

n의 수만큼 학생들의 정보를 입력받아서 공백을 기준으로 나눈 리스트를 score에 넣어준다.

score를 주어진 조건에 맞게 정렬하는데,
이 때, lambda를 이용해서 한 번에 주어진 조건을 모두 사용할 수 있다.
감소하는 순서는 -를 붙여서 정렬해 준다.

정렬된 리스트에서 학생들의 이름만 출력해 준다.

반응형