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

SmileJun·2025년 3월 2일

알고리즘

목록 보기
10/34

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

C++

#include<iostream>
#include<algorithm>
using namespace std;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    int k,N,gap;
    int arr1[110];
    cin >> k; // 반의 수
    for(int i = 1; i <= k; i++) {
        cin >> N;
        for(int j = 0; j < N; j++) {
            cin >> arr1[j];
        }
        sort(arr1, arr1+N, greater<int>());

        int max = 0;
        for(int a = 0; a < N-1; a++) {
            if(abs(arr1[a] - arr1[a+1]) > max) {
                max = abs(arr1[a] - arr1[a+1]);
            }
            gap = max;
        }
        cout << "Class " << i << endl;
        cout << "Max " << arr1[0] << ", Min " << arr1[N-1] << ", Largest gap " << gap << endl;
    }
}

문제풀이

  • 반의 수와 각 반의 학생 수, 학생들의 수학 점수를 차례대로 입력 받는다. 그리고 최대 점수, 최소 점수, 가장 큰 인접한 점수 차이를 알아야 하기 때문에, 수학 점수를 담은 배열을 내림차순으로 정렬한다. 그런 다음 문제 조건에 맞게 출력해주면 된다.

Comment

  • 가장 큰 인접한 점수 차이를 구할 때, abs를 사용해야된다는 것 빼고는 크게 어려움 없었다.
profile
하루하루는 성실하게, 인생 전체는 되는대로

0개의 댓글