백준 2548 c++ : 정렬

magicdrill·2024년 12월 18일
0

백준 문제풀이

목록 보기
510/655

백준 2548 c++ : 정렬

#include <iostream>
#include <vector>
#include <math.h>
#include <algorithm>

using namespace std;

void input_data(vector<int> &nums) {
	cout << "input_data()\n";

	int i, N, temp;
	cin >> N;
	for (i = 0; i < N; i++) {
		cin >> temp;
		nums.push_back(temp);
	}

	return;
}

int find_answer(vector<int>& nums) {
	cout << "find_answer()\n";

	int answer = 0;
	int i, j, current;
	int min = 2100000000, sum;

	//차이들의 합이 최소가 되려면, 정렬이 되어 가장 가까운 수끼리 차를 내야 함
	sort(nums.begin(), nums.end());
	for (i = 0; i < nums.size(); i++) {
		sum = 0;
		current = nums[i];
		for (j = 0; j < nums.size(); j++) {
			sum += abs(current - nums[j]);
		}
		cout << current << " : " << sum << "\n";
		if (sum < min) {
			min = sum;
			answer = current;
			cout << "new_answer : " << answer << "\n";
		}
	}

	return answer;
}

int main(void) {
	ios_base::sync_with_stdio(false);
	cout.tie(NULL);
	cin.tie(NULL);

	vector<int> nums;

	input_data(nums);
	cout << find_answer(nums) << "\n";

	return 0;
}

0개의 댓글