https://www.acmicpc.net/problem/5800
성적을 입력받아서 int 배열에 저장하고,
정렬해서 최대 최소 구하고,
인접한 점수 차 중 최댓값 구하고,
바로바로 출력했다.
이걸 K번 반복.
인접한 점수 차가 arr[i - 1] - arr[i]인데, (∵내림차순 정렬)
나도 모르게 오름차순으로 생각하고 arr[i] - arr[i - 1]으로 썼다.
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int K; cin>>K;
int arr[51];
for(int k = 1; k<=K; k++){ //K번 반복
int N; cin >> N;
for(int i = 0; i < N; i++){
cin >> arr[i];
}
sort(arr, arr+N, greater<int>()); //내림차순 정렬
cout << "Class " << k << endl;
cout << "Max " << arr[0] << ", ";
cout << "Min " << arr[N - 1] << ", ";
int gap, largest = 0; //gap: 인접한 점수 차, largest: gap의 최댓값
for(int i = 1; i < N; i++){
gap = arr[i - 1] - arr[i];
if(largest < gap)
largest = gap;
}
cout << "Largest gap " << largest << endl;
}
return 0;
}