알고리즘
백준 국영수
메밀국수가생각나
2022. 2. 22. 21:26
https://www.acmicpc.net/problem/10825
10825번: 국영수
첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1
www.acmicpc.net
나의 풀이 by python
n = int(input())
data = []
for i in range(n):
name, a, b, c = input().split()
a, b, c = int(a), int(b), int(c)
data.append([a, b, c, name])
data = sorted(data, key = lambda x : (-x[0], x[1], -x[2], x[3]))
for i in range(n):
print(data[i][3])
해당 문제는 여러가지 값을 정렬로 이용해야 할 때 유용하게 사용할 수 있는 예제이다.
이것이 코딩 테스트이다 답안
n = int(input())
students = [] # 학생 정보를 담을 리스트
# 모든 학생 정보를 입력받기
for _ 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])