https://www.acmicpc.net/problem/5800
5800번: 성적 통계
첫째 줄에 중덕 고등학교에 있는 반의 수 K (1 ≤ K ≤ 100)가 주어진다. 다음 K개 줄에는 각 반의 학생수 N (2 ≤ N ≤ 50)과 각 학생의 수학 성적이 주어진다. 시험 성적은 0보다 크거나 같고, 100보다
www.acmicpc.net
문제
한상덕은 이번에 중덕 고등학교에 새로 부임한 교장 선생님이다. 교장 선생님으로서 첫 번째 일은 각 반의 수학 시험 성적의 통계를 내는 일이다.
중덕 고등학교 각 반의 학생들의 수학 시험 성적이 주어졌을 때, 최대 점수, 최소 점수, 점수 차이를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 중덕 고등학교에 있는 반의 수 K (1 ≤ K ≤ 100)가 주어진다. 다음 K개 줄에는 각 반의 학생수 N (2 ≤ N ≤ 50)과 각 학생의 수학 성적이 주어진다. 시험 성적은 0보다 크거나 같고, 100보다 작거나 같은 정수이고, 공백으로 나누어져 있다.
출력
각 반에 대한 출력은 다음과 같이 두 줄로 이루어져 있다.
- 첫째 줄에는 "Class X"를 출력한다. X는 반의 번호이며 입력으로 주어진 순서대로 1부터 증가한다.
- 둘째 줄에는 가장 높은 점수, 낮은 점수, 성적을 내림차순으로 정렬했을 때 가장 큰 인접한 점수 차이를 예제 출력과 같은 형식으로 출력한다.
예제 입력 1 복사
2
5 30 25 76 23 78
6 25 50 70 99 70 90
예제 출력 1 복사
Class 1
Max 78, Min 23, Largest gap 46
Class 2
Max 99, Min 25, Largest gap 25
출처
ICPC > Regionals > South Pacific > South Pacific Region > 2011 ACM South Pacific Programming Contest A번
- 문제를 번역한 사람: baekjoon
k = int(input())
for i in range(k):
score = list(map(int, input().split()))
del score[0]
gap = 0
score.sort(reverse=True)
for j in range(len(score)-1):
if score[j] - score[j+1] > gap:
gap = score[j] - score[j+1]
print('Class %d' %(i+1))
print('Max %d, Min %d, Largest gap %d' % (max(score), min(score), gap) , end ='')
맞은 코드
k = int(input())
for i in range(k):
score = list(map(int, input().split()))
del score[0]
gap = 0
score.sort(reverse=True)
for j in range(len(score)-1):
if score[j] - score[j+1] > gap:
gap = score[j] - score[j+1]
print('Class %d' %(i+1))
print('Max %d, Min %d, Largest gap %d' % (max(score), min(score), gap))
입력받은 첫번째 수가 학생 수라는 것을 주의해야 한다.
내림차순으로 리스트를 정렬해주고 앞 숫자와 뒤 숫자를 뺀 값들을 gap과 비교하며 크면 gap을 업데이트 해줬다.
최댓값과 최솟값은 함수를 사용했다.
처음에 end 없이 출력하니까 한 줄이 띄어져서 나오길래 출력 형식 맞추려고 end='' 붙여서 제출을 했다.
오타도 없는 거 확인 했는데 계속 틀렸습니다가 떠서 혹시나하고 end옵션을 제거했더니 맞았다.....
이건 end=''를 붙인 출력인데 왜 이렇게 나오는지 모르겠다.
'백준 > Python' 카테고리의 다른 글
[백준] 2751번: 수 정렬하기 2_실버5 (Python) (0) | 2023.08.20 |
---|---|
[백준] 1181번: 단어 정렬_실버5 (Python) (0) | 2023.08.17 |
[백준] 4949번: 균형잡힌 세상_실버4 (Python) (0) | 2023.08.15 |
[백준] 5430번: AC_골드5 (Python) (0) | 2023.08.15 |
[백준] 11047번: 동전 0_실버4 (Python) (0) | 2023.08.15 |