문제
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
import sys
input = sys.stdin.readline
LargestGap = 0
K = int(input())
classX = [[0]*50 for _ in range(100)]
classNum = []
for _ in range(K):
classX[_] = list(map(int,input().split()))
classNum.append(classX[_][0])
classX[_].pop(0)
classX[_] = sorted(classX[_])
for _ in range(K):
LargestGap = 0
for i in range(classNum[_] - 1):
if classX[_][i+1] - classX[_][i] > LargestGap:
LargestGap = classX[_][i+1] - classX[_][i]
print("Class", _+1)
print("Max", max(classX[_]), end=",")
print(" Min" ,min(classX[_]), end=",")
print(" Largest gap", LargestGap)
K값을 입력 받고 K회 만큼 입력 받을 배열을 생성합니다.
classNum은 학생들의 수를 따로 빼기 위함입니다.
K회 만큼 반복하며 첫번째 for문에서 반 학생 수와 입력 받은 성적을 한번에 받고 분리합니다. 이후 점수만 남아있는 classX배열을 정렬합니다.
다음 for문에서 연속된 값중 가장 차이가 큰 값을 구한 후 예제에 따라 출력합니다.
한줄로 출력할 경우 예제와 다르게 값 뒤 쉼표가 떨어져 있기때문에 분리해서 출력했습니다.
생각해보면 2차원 배열을 사용하지 않아도 문제를 풀 수 있었습니다.
Git Hub
BaekJoon-Study/5800.py at python · GUuu9/BaekJoon-Study (github.com)
GitHub - GUuu9/BaekJoon-Study
Contribute to GUuu9/BaekJoon-Study development by creating an account on GitHub.
github.com
'백준 코드 공부 > 파이썬' 카테고리의 다른 글
백준 11651 : 좌표 정렬하기 2 (Python) (0) | 2022.02.14 |
---|---|
백준 11650 : 좌표 정렬하기 (Python) (0) | 2022.02.13 |
백준 17362 : 수학은 체육과목 입니다 2 (Python) (0) | 2022.02.07 |
백준 1026 : 보물 (Pyhon) (0) | 2022.02.07 |
백준 11728 : 배열 합치기 (Python) (0) | 2022.02.05 |