정구리의 우주정복

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

ALGORITHM/SOLVE

[BOJ] 10825번 국영수 파이썬

Jungry_ 2021. 1. 7. 21:00
반응형

되게 좋은 문제인것 같아서 올린당

www.acmicpc.net/problem/10825

 

10825번: 국영수

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

www.acmicpc.net

#국영수
n = int(input())
array = []
for i in range(n):
    data = input().split()
    array.append((data[0],int(data[1]),int(data[2]),int(data[3])))

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

for x in array:
    print(x[0])

sort 부분이 되게 유익하다고 생각했음

우선순위를 지정해주고 원소를 정렬하는 것이다

 

여기서 우선순위는

n명의 학생의 이름 , 국 , 영, 수 점수가 주어짐

1. 국어 점수가 감소하는 순서

2, 국어 점수가 같으면 영어 점수가 증가하는 순서

3. 국어 영어가 같으면 수학 점수가 감소하는 순서

4. 모두 같으면 이름이 사전 순으로 증가하는 순서

 

국어 -> 영어 -> 수학 -> 이름 이렇게 우선순위가 되니까 lambda 식을 저렇게 써주면 된다 ! 기억해둬야징



반응형
Comments