[코딩테스트 스터디/C++] 백준 18310번 안테나

최대 1 분 소요

1.문제 링크

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



2. 풀이 전 계획과 생각

  • 정렬 알고리즘 사용



3. 풀이

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

int n;

vector<int> v;

int main(){
	// 입력  
	cin>>n;
	
	// 입력  
	for(int i=0;i<n;i++){
		int temp; cin>>temp;
		v.push_back(temp);
	}
	
	// 정렬  
	sort(v.begin(), v.end());
	
	int ans = (n-1)/2;
	
	// 답 출력  
	cout<<v[ans];
} 

중앙값 위치에 안테나를 설치하는 것이 안테나로부터 모든 집까지의 거리의 총합이 최소가 된다.



4. 풀이하면서 고민했던 점

  • for문을 이용해 모든 경우에 대해 계산해 최솟값을 찾았는데 시간초과가 나왔다.



5. 문제를 풀고 알게된 개념 및 소감

  • 풀이가 간단해서 놀람