백준/단계별

[C++] 백준 2587

loasd 2022. 12. 30. 00:14
반응형

백준의 2587번 문제 대표값2이다.

https://www.acmicpc.net/problem/2587

 

2587번: 대표값2

어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 +

www.acmicpc.net


 < 문제 >

어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + 30) / 5 = 170 / 5 = 34가 된다.

평균 이외의 또 다른 대표값으로 중앙값이라는 것이 있다. 중앙값은 주어진 수를 크기 순서대로 늘어 놓았을 때 가장 중앙에 놓인 값이다. 예를 들어 10, 40, 30, 60, 30의 경우, 크기 순서대로 늘어 놓으면

10 30 30 40 60

이 되고 따라서 중앙값은 30이 된다.

 

다섯 개의 자연수가 주어질 때 이들의 평균과 중앙값을 구하는 프로그램을 작성하시오.

 

 < 예제 >

평균과 중앙값을 구하는 간단한 정렬 문제이다.

 

이전의 2750 수 정렬하기 문제와 거의 유사하다.

https://loasd.tistory.com/52

 

[C++] 백준 2750

백준의 2750번 문제 수 정렬하기 이다. https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값

loasd.tistory.com

 

입력된 값의 개수가 5로 고정되어있어 중앙값은 구하기 쉽다.

#include <iostream>
#include <algorithm>
using namespace std;
#define size 5

int main() {

	int num[5];
	int max = 0;
	for (int i = 0; i < 5; i++) {
		cin >> num[i];
	}

	sort(num, num + 5);
	int sum = 0;
	for (int i = 0; i < size; i++) {
		sum += num[i];
	}
	cout << sum / size << endl << num[2];
}

include < algorithm>을 해준 후 num배열을 sort()로 정렬해준다.

그 후 배열의 총합을 구하고 size(5)로 나눠주면 평균을 구할 수 있다.

배열에 들어갈 값의 갯수가 5로 고정되어 있기 때문에 중앙값은 당연히 num[2]가 된다.

 

정말 간단한 정렬문제이다.

 

#include <iostream>
using namespace std;
#define size 5

int main() {

	int num[5];
	int max = 0;
	for (int i = 0; i < 5; i++) {
		cin >> num[i];
	}
	int temp;
	for (int i = 0; i < size; i++) {
		for (int j = 1; j < size; j++) {
			if (num[j] < num[j - 1]) {
				temp = num[j];
				num[j] = num[j - 1];
				num[j - 1] = temp;
			}
		}
	}

	int sum = 0;
	for (int i = 0; i < size; i++) {
		sum += num[i];
	}
	cout << sum / size << endl << num[2];
}

이런식으로 sort()를 사용하지 않고 직접 작성한 정렬방법을 통해서도 문제를 해결할 수 있다.

 

반응형

'백준 > 단계별' 카테고리의 다른 글

[C++] 백준 2751  (0) 2022.12.30
[C++] 백준 25305  (0) 2022.12.30
[C++] 백준 2750  (0) 2022.12.30
[C++] 백준 2563  (0) 2022.12.29
[C++] 백준 2566  (0) 2022.12.29