본문 바로가기
코딩테스트 준비/백준

[백준 2587번][C++] 대표값 2

by 스테디코디스트 2023. 7. 23.
반응형

<문제 소개>


<소스 코드>

#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <map>
#include <unordered_map>
#include <cmath>
#include <stack>
#include <queue>
#include <algorithm>
#include <cstdlib>
using namespace std;

int main()
{
	// 쓰레드 환경이 아닐때 버퍼를 분리하여 처리속도를 빠르게 해줌
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);

	vector<int> v(5);

	int sum = 0; // 합계
	int avg = 0; // 평균

	// 원소 입력
	for (int i = 0; i < 5; i++)
	{	
		cin >> v[i];
		sum += v[i];
	}

	avg = sum / v.size();
	cout << avg << "\n";

	sort(v.begin(), v.end()); // 정렬

	cout << v[v.size() / 2];

	return 0;
}

<풀이과정>

1. 5의 크기의 벡터 v를 선언

2. 입력을 받으면서 v에 넣고, sum에 각 입력값들을 더해주어 모든 값들의 합을 구함

3. sum을 v의 크기로 나누어 평균값 avg를 구해서 출력

4. sort를 이용해 v를 정렬한 뒤, v의 크기에 절반에 해당되는 값을 인덱스로 하는 v의 원소를 출력


<코멘트>

처음에는 평균과의 차이값이 가장 작은 수를 찾아서 중앙값을 구하려 했는데 틀렸다.(이렇게 구하면 안되는듯ㅋㅋ)

그래서 그냥 정렬해서 중앙값을 구했다.


<제출결과>