Algorithm/백준

[백준/Python] 국영수

poppy 2021. 5. 7. 13:30
반응형

www.acmicpc.net/problem/10825

 

10825번: 국영수

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

www.acmicpc.net

# 입력받는 부분
n = int(input())
students = []
for i in range(n):
  students.append(input().split())

# 문제에 제시된 조건대로 정렬
students.sort(key = lambda x: (-int(x[1]), int(x[2]), -int(x[3]), x[0]))

# 정렬 후 결과 출력
for student in students:
  print(student[0])

이 문제에 제시된 조건대로 정렬하는 것만 해주면 되는 문제였습니다. sort() 함수에 원하는 조건만 넣어주면 알아서 조건에 맞춰 정렬됩니다. 조건이 하나인 경우만  다뤄봤었는데 이 문제를 통해 sort()를 사용하여 여러 조건을 적용시켜보았습니다. 여러 조건을 줄 때는 key = lambda x: (조건1, 조건2, .... 조건n) 형태로 조건을 주면 됩니다.

 

내림차순으로 정렬할 때는 - 만 붙여주면 됩니다. 이 문제에서는 국어 점수 기준 내림차순 정렬이었으므로 -int(x[1])이 된 것입니다.

 

마지막으로 정렬한 값들을 출력시켜주면 끝입니다.

반응형

'Algorithm > 백준' 카테고리의 다른 글

[백준/Python] 특정 거리의 도시 찾기  (0) 2021.07.24
[백준/Python] 플로이드  (0) 2021.07.04
[백준/Python] 럭키 스트레이트  (0) 2021.05.14
[백준/Python] 카드 정렬하기  (0) 2021.05.08
[백준/Python] 안테나  (0) 2021.05.07