10
17
  • 사용 언어 C++
  • 문제 백준 2587번 대표값을 구하는 문제

문제

어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 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이 된다.
다섯 개의 자연수가 주어질 때 이들의 평균과 중앙값을 구하는 프로그램을 작성하시오.

입력

첫째 줄부터 다섯 번째 줄까지 한 줄에 하나씩 자연수가 주어진다. 주어지는 자연수는 100 보다 작은 10의 배수이다.

 

코드

더보기

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

int main()
{
int a = 0;
vector<int> num;

int middle;

for (int i = 0; i < 5; i++)
{
cin >> a;
num.push_back(a);
}

sort(num.begin(), num.end());

int average = accumulate(num.begin(), num.end(), 0);
average = average / num.size();


middle = num[2];

cout << average << endl;
cout << middle << endl;

return 0;
}

총 5개의 입력 값을 vector에 저장한다.

 

average는 입력한 값을 전체 평균값을 구해야된다.

sort를 사용하여 정렬하고, 새로운 기능인 accumulate를 이용하여 vector 안에 수의 합을 구하고 vector의 크기 값 만큼 나누면 평균 값이 구해진다.

 

middle은 입력한 값의 중간 값을 구해야된다.

middle은 vector num의 중간인 2를 넣어 중간 값을 꺼내오게 한다.

 

 

'코딩 > 코드 문제 묶음' 카테고리의 다른 글

C++ 연습 문제_2  (1) 2024.12.23
C++ 연습 문제_1  (1) 2024.12.23
오늘의 코딩 3일차  (1) 2023.10.20
오늘의 코딩 2일차  (0) 2023.10.19
오늘의 코딩 0일차  (0) 2023.10.14
COMMENT