ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ 곡뢀/C++

λ°±μ€€ 2592번 : λŒ€ν‘œκ°’ with C++

연이14 2023. 2. 25. 12:05

문제

μ–΄λ–€ μˆ˜λ“€μ΄ μžˆμ„ λ•Œ, κ·Έ μˆ˜λ“€μ„ λŒ€ν‘œν•˜λŠ” κ°’μœΌλ‘œ κ°€μž₯ ν”ν•˜κ²Œ μ“°μ΄λŠ” 것은 평균이닀. 평균은 μ£Όμ–΄μ§„ λͺ¨λ“  수의 합을 수의 개수둜 λ‚˜λˆˆ 것이닀. 예λ₯Ό λ“€μ–΄ 10, 40, 30, 60, 30, 20, 60, 30, 40, 50의 평균은 (10 + 40 + 30 + 60 + 30 + 20 + 60 + 30 + 40 + 50) / 10 = 370 / 10 = 37이 λœλ‹€.

평균 μ΄μ™Έμ˜ 또 λ‹€λ₯Έ λŒ€ν‘œκ°’μœΌλ‘œ μ΅œλΉˆκ°’μ΄λΌλŠ” 것이 μžˆλ‹€. μ΅œλΉˆκ°’μ€ μ£Όμ–΄μ§„ μˆ˜λ“€ κ°€μš΄λ° κ°€μž₯ 많이 λ‚˜νƒ€λ‚˜λŠ” μˆ˜μ΄λ‹€. 예λ₯Ό λ“€μ–΄ 10, 40, 30, 60, 30, 20, 60, 30, 40, 50이 μ£Όμ–΄μ§ˆ 경우, 30이 μ„Έ 번, 40κ³Ό 60이 각각 두 번, 10, 20, 50이 각각 ν•œ λ²ˆμ”© λ‚˜μ˜€λ―€λ‘œ, μ΅œλΉˆκ°’μ€ 30이 λœλ‹€.

μ—΄ 개의 μžμ—°μˆ˜κ°€ μ£Όμ–΄μ§ˆ λ•Œ μ΄λ“€μ˜ 평균과 μ΅œλΉˆκ°’μ„ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

첫째 쀄뢀터 μ—΄ 번째 μ€„κΉŒμ§€ ν•œ 쀄에 ν•˜λ‚˜μ”© μžμ—°μˆ˜κ°€ μ£Όμ–΄μ§„λ‹€. μ£Όμ–΄μ§€λŠ” μžμ—°μˆ˜λŠ” 1,000 보닀 μž‘μ€ 10의 λ°°μˆ˜μ΄λ‹€.

좜λ ₯

첫째 μ€„μ—λŠ” 평균을 좜λ ₯ν•˜κ³ , λ‘˜μ§Έ μ€„μ—λŠ” μ΅œλΉˆκ°’μ„ 좜λ ₯ν•œλ‹€. μ΅œλΉˆκ°’μ΄ λ‘˜ 이상일 경우 κ·Έ 쀑 ν•˜λ‚˜λ§Œ 좜λ ₯ν•œλ‹€. 평균과 μ΅œλΉˆκ°’μ€ λͺ¨λ‘ μžμ—°μˆ˜μ΄λ‹€.

#include <iostream>
using namespace std;

int main() {
	int num[10], avg = 0, count[10] = { 0, };
	for (int i = 0; i < 10; i++) {
		cin >> num[i];
		avg += num[i];	// λͺ¨λ“  수 λ”ν•˜κΈ°
	}

	avg /= 10;	// 평균값 κ΅¬ν•˜κΈ°

	int max = 0, max_num = 0;
	for (int i = 0; i < 10; i++) {
		for (int j = 0; j < 10; j++) {
			if (num[i] == num[j]) {	// 각 수의 개수 μ„ΈκΈ°
				count[i]++;
			}
		}
		if (count[i] > max) {	// μ΅œλΉˆκ°’ μ°ΎκΈ°
			max_num = i;
			max = count[i];
		}
	}

	cout << avg << "\n" << num[max_num];

	return 0;
}