1. 문제
https://www.acmicpc.net/problem/10825
10825번: 국영수
첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1
www.acmicpc.net
2. 풀이
import sys
input = sys.stdin.readline
# n : 학생 수
n = int(input())
# n_l : 학생 이름과 점수를 저장할 리스트
n_l = []
for i in range(n):
name, kor, eng, math = map(str, input().split())
n_l.append((name, int(kor), int(eng), int(math)))
sort_n_l = sorted(n_l, key = lambda x : (-x[1], x[2], -x[3], x[0]))
for i in sort_n_l:
print(i[0])
3. 후기
- 문제에서 입력받은 이름, 국어, 영어, 수학을 set로 리스트에 저장하여 lambda 식으로 여러 조건 정렬을 진행한 후 이름을 순서대로 출력하였습니다.
'알고리즘 공부 > 백준' 카테고리의 다른 글
(Python)백준 코딩테스트 연습 - 기타줄(1049) (0) | 2023.01.17 |
---|---|
(Python)백준 코딩테스트 연습 - 카드(11652) (0) | 2023.01.17 |
(Python)백준 코딩테스트 연습 - 비밀번호 찾기(17219) (0) | 2023.01.16 |
(Python)백준 코딩테스트 연습 - 접미사 배열(11656) (0) | 2023.01.16 |
(Python)백준 코딩테스트 연습 - 회전하는 큐(1021) (0) | 2023.01.15 |