728x90
반응형
SMALL
문제
도현이네 반 학생 N명의 이름과 국어, 영어, 수학 점수가 주어진다. 이때, 다음과 같은 조건으로 학생의 성적을 정렬하는 프로그램을 작성하시오.
- 국어 점수가 감소하는 순서로
- 국어 점수가 같으면 영어 점수가 증가하는 순서로
- 국어 점수와 영어 점수가 같으면 수학 점수가 감소하는 순서로
- 모든 점수가 같으면 이름이 사전 순으로 증가하는 순서로 (단, 아스키 코드에서 대문자는 소문자보다 작으므로 사전순으로 앞에 온다.)
풀이
- 파이썬의 sort함수를 떠올렸으며 이를 lamba 식을 이용해 여러개의 문제의 요구사항을 만족 할 수 있겠다라고 생각했음
- arr.sort(key = lamba x : (오름차순인지 내림차순인지에 대한 정의를 할 수 있음)) #여러개의 key를 lambda로 줄때는 lambda x : () 이 소괄호 중요
N = int(input())
answer = []
for _ in range(N):
answer.append(input().split())
answer.sort(key = lambda x: (-int(x[1]), int(x[2]), -int(x[3]), x[0]) )
for i in range(N):
print(answer[i][0])
728x90
반응형
LIST
'알고리즘 && 자료구조 > 백준' 카테고리의 다른 글
[백준 11279] 최대 힙 (Feat.Python) (0) | 2024.01.03 |
---|---|
[백준 10828] 스택(Feat. Python) (0) | 2023.10.25 |
[백준 10813] 공바꾸기(Feat. Python) (0) | 2023.10.25 |
[백준 1002] 터렛 (Feat. Python) (0) | 2023.10.25 |
[백준 14215] 세 막대 (Feat.Python) (0) | 2023.10.24 |