ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ณต๋ถ€/C++

๋ฐฑ์ค€ 5800๋ฒˆ : ์„ฑ์  ํ†ต๊ณ„ with C++

์—ฐ์ด14 2023. 3. 31. 16:53

๋ฌธ์ œ

ํ•œ์ƒ๋•์€ ์ด๋ฒˆ์— ์ค‘๋• ๊ณ ๋“ฑํ•™๊ต์— ์ƒˆ๋กœ ๋ถ€์ž„ํ•œ ๊ต์žฅ ์„ ์ƒ๋‹˜์ด๋‹ค. ๊ต์žฅ ์„ ์ƒ๋‹˜์œผ๋กœ์„œ ์ฒซ ๋ฒˆ์งธ ์ผ์€ ๊ฐ ๋ฐ˜์˜ ์ˆ˜ํ•™ ์‹œํ—˜ ์„ฑ์ ์˜ ํ†ต๊ณ„๋ฅผ ๋‚ด๋Š” ์ผ์ด๋‹ค.

์ค‘๋• ๊ณ ๋“ฑํ•™๊ต ๊ฐ ๋ฐ˜์˜ ํ•™์ƒ๋“ค์˜ ์ˆ˜ํ•™ ์‹œํ—˜ ์„ฑ์ ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ตœ๋Œ€ ์ ์ˆ˜, ์ตœ์†Œ ์ ์ˆ˜, ์ ์ˆ˜ ์ฐจ์ด๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ค‘๋• ๊ณ ๋“ฑํ•™๊ต์— ์žˆ๋Š” ๋ฐ˜์˜ ์ˆ˜ K (1 ≤ K ≤ 100)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ K๊ฐœ ์ค„์—๋Š” ๊ฐ ๋ฐ˜์˜ ํ•™์ƒ์ˆ˜ N (2 ≤ N ≤ 50)๊ณผ ๊ฐ ํ•™์ƒ์˜ ์ˆ˜ํ•™ ์„ฑ์ ์ด ์ฃผ์–ด์ง„๋‹ค. ์‹œํ—˜ ์„ฑ์ ์€ 0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๊ณ , ๊ณต๋ฐฑ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค. 

์ถœ๋ ฅ

๊ฐ ๋ฐ˜์— ๋Œ€ํ•œ ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‘ ์ค„๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

  • ์ฒซ์งธ ์ค„์—๋Š” "Class X"๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. X๋Š” ๋ฐ˜์˜ ๋ฒˆํ˜ธ์ด๋ฉฐ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ์ˆœ์„œ๋Œ€๋กœ 1๋ถ€ํ„ฐ ์ฆ๊ฐ€ํ•œ๋‹ค.
  • ๋‘˜์งธ ์ค„์—๋Š” ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜, ๋‚ฎ์€ ์ ์ˆ˜, ์„ฑ์ ์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ–ˆ์„ ๋•Œ ๊ฐ€์žฅ ํฐ ์ธ์ ‘ํ•œ ์ ์ˆ˜ ์ฐจ์ด๋ฅผ ์˜ˆ์ œ ์ถœ๋ ฅ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.
#include <iostream>
#include <algorithm>
using namespace std;

int main() {
    int K, N[101], Grade[101][51];
    int gap[101];

    cin >> K;   // ๋ฐ˜์˜ ์ˆ˜ ์ž…๋ ฅ๋ฐ›๊ธฐ

    for (int i = 0; i < K; i++) {
        cin >> N[i];    // ๋ฐ˜์˜ ํ•™์ƒ์ˆ˜ ์ž…๋ ฅ๋ฐ›๊ธฐ

        for (int j = 0; j < N[i]; j++) {
            cin >> Grade[i][j]; // ํ•™์ƒ ์„ฑ์  ์ž…๋ ฅ๋ฐ›๊ธฐ
        }

        sort(Grade[i], Grade[i] + N[i]);    // ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์„ฑ์  ์ •๋ ฌ
    }

    for (int i = 0; i < K; i++) {   // ์ตœ๋Œ€ ๊ฐญ ๊ตฌํ•˜๊ธฐ
        gap[i] = Grade[i][1] - Grade[i][0]; // ์ฒซ๋ฒˆ์งธ ๊ฐญ ๋„ฃ๊ธฐ
        for (int j = 2; j < N[i]; j++) {    // ๊ตฌํ•œ ๊ฐญ์ด gap์— ์žˆ๋Š” ๊ฐ’๋ณด๋‹ค ํฌ๋ฉด ์—…๋ฐ์ดํŠธ
            if (Grade[i][j] - Grade[i][j - 1] > gap[i]) {
                gap[i] = Grade[i][j] - Grade[i][j-1];
            }
        }
    }

    for (int i = 0; i < K; i++) {   // ๊ฐ’ ์ถœ๋ ฅ
        cout << "Class " << i + 1 << "\n";
        cout << "Max " << Grade[i][N[i] - 1] << ", Min " << Grade[i][0] << ", Largest gap " << gap[i] << "\n";
    }

    return 0;
}