๋ฐฑ์ค 5800๋ฒ : ์ฑ์ ํต๊ณ with C++
๋ฌธ์
ํ์๋์ ์ด๋ฒ์ ์ค๋ ๊ณ ๋ฑํ๊ต์ ์๋ก ๋ถ์ํ ๊ต์ฅ ์ ์๋์ด๋ค. ๊ต์ฅ ์ ์๋์ผ๋ก์ ์ฒซ ๋ฒ์งธ ์ผ์ ๊ฐ ๋ฐ์ ์ํ ์ํ ์ฑ์ ์ ํต๊ณ๋ฅผ ๋ด๋ ์ผ์ด๋ค.
์ค๋ ๊ณ ๋ฑํ๊ต ๊ฐ ๋ฐ์ ํ์๋ค์ ์ํ ์ํ ์ฑ์ ์ด ์ฃผ์ด์ก์ ๋, ์ต๋ ์ ์, ์ต์ ์ ์, ์ ์ ์ฐจ์ด๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ค๋ ๊ณ ๋ฑํ๊ต์ ์๋ ๋ฐ์ ์ 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;
}