7070 : 성적 처리 프로그램
•시간제한: 1.000 S
•메모리제한: 256 MB
•제출: 0
•통과: 0
•만든사람: suakii
문제 설명
BFStudy 학교의 담임 선생님은 학기말마다 학생들의 성적을 정리하는 데 어려움을 겪고 있습니다.
국어, 영어, 수학 세 과목의 점수를 입력받아 다음을 계산하는 성적 처리 프로그램을 작성하십시오.
- 과목별 전체 평균 (소수점 둘째 자리까지)
- 각 학생의 종합 평균(세 과목 평균)을 기준으로 내림차순 정렬한 순위표
- 종합 평균에 따른 등급: 90점 이상=A, 80점 이상=B, 70점 이상=C, 60점 이상=D, 나머지=F
- 동점인 경우 이름의 오름차순(사전순)으로 정렬
[제약 조건]
• 학생 수 $N$: $1 \le N \le 100$
• 이름 길이: $\le 20$, 각 과목 점수: $0 \le \text{점수} \le 100$
국어, 영어, 수학 세 과목의 점수를 입력받아 다음을 계산하는 성적 처리 프로그램을 작성하십시오.
- 과목별 전체 평균 (소수점 둘째 자리까지)
- 각 학생의 종합 평균(세 과목 평균)을 기준으로 내림차순 정렬한 순위표
- 종합 평균에 따른 등급: 90점 이상=A, 80점 이상=B, 70점 이상=C, 60점 이상=D, 나머지=F
- 동점인 경우 이름의 오름차순(사전순)으로 정렬
[제약 조건]
• 학생 수 $N$: $1 \le N \le 100$
• 이름 길이: $\le 20$, 각 과목 점수: $0 \le \text{점수} \le 100$
입력 설명
첫째 줄에 학생 수 N이 주어집니다. (1 ≤ N ≤ 100)
이후 N개의 줄에 걸쳐
이름은 영어 대소문자로 이루어지며 최대 20자입니다. 각 과목 점수는 0 이상 100 이하의 정수입니다.
이후 N개의 줄에 걸쳐
이름 국어점수 영어점수 수학점수가 공백으로 구분되어 주어집니다.이름은 영어 대소문자로 이루어지며 최대 20자입니다. 각 과목 점수는 0 이상 100 이하의 정수입니다.
출력 설명
첫째 줄에
이후 N개의 줄에 걸쳐
평균은 소수점 둘째 자리까지 출력합니다.
국어: X.XX 영어: X.XX 수학: X.XX 형식으로 과목별 전체 평균을 출력합니다.이후 N개의 줄에 걸쳐
순위 이름 평균 등급 형식으로 종합 평균 내림차순으로 출력합니다.평균은 소수점 둘째 자리까지 출력합니다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
3
Alice 90 85 92
Bob 78 82 80
Chris 95 90 88
출력 예시
COPY
복사되었습니다!
복사되었습니다!
국어: 87.67 영어: 85.67 수학: 86.67
1 Chris 91.00 A
2 Alice 89.00 B
3 Bob 80.00 B
도움
sorted(students, key=lambda s: (-s['avg'], s['name']))처럼 다중 키 정렬을 활용하면 동점 처리가 간편합니다.등급 구분은
if avg >= 90: grade = 'A' 형태의 순차 조건문으로 구현하십시오.