본문 바로가기

BOJ

[BOJ][C++] 백준 5800번 - 성적 통계

728x90

문제 링크: https://www.acmicpc.net/problem/5800

 

5800번: 성적 통계

첫째 줄에 중덕 고등학교에 있는 반의 수 K (1 ≤ K ≤ 100)가 주어진다. 다음 K개 줄에는 각 반의 학생수 N (2 ≤ N ≤ 50)과 각 학생의 수학 성적이 주어진다. 시험 성적은 0보다 크거나 같고, 100보다

www.acmicpc.net


문제 풀이

배열을 받은 후 정렬하여 최댓값과 최솟값을 구하고 반복문을 이용해서 가장 큰 점수 차이를 구하면 된다.

 

코드

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int k, n, st;
int MIN, MAX, ans;
vector<int> arr;
cin >> k;
for (int i = 1; i <= k; i++){
cin >> n;
arr.clear();
for (int j = 0; j < n; j++){
cin >> st;
arr.push_back(st);
}
sort(arr.begin(), arr.end());
MIN = arr[0];
MAX = arr[arr.size()-1];
ans = 0;
for (int j = 1; j < n; j++){
ans = max(ans, arr[j]-arr[j-1]);
}
cout << "Class " << i << "\n" << "Max " << MAX << ", Min " << MIN << ", Largest gap " << ans << "\n";
}
}
view raw 5800.cpp hosted with ❤ by GitHub
728x90