특정 위치의 집에 특별히 한 개의 안테나를 설치 -> 안테나로부터 모든 집까지의 거리의 총 합이 최소
집의 수 N(1≤N≤200,000)
N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수
안테나를 설치할 위치의 값을 출력 (여러 개의 값이 도출될 경우 가장 작은 값을 출력)
using namespace std;
vector<int> house;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int N,temp;
cin >> N;
for (int i = 0; i < N; i++) {
cin >> temp;
house.push_back(temp);
}
sort(house.begin(), house.end());
if (house.size() % 2 == 0) { //집의 수가 짝수인경우
int f = house[house.size() / 2 - 1];
int s = house[house.size() / 2];
int ft = 0, st = 0;
for (int i = 0; i < N; i++) {
ft += abs(house[i] - f);
st += abs(house[i] - s);
}
if (ft <= st) {
cout << f << "\n";
}
else {
cout << s << "\n";
}
}
else { //집의 수가 홀수인경우
cout << house[house.size()/2] << "\n";
}
return 0;
}