※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 18310번 문제인 안테나이다.

문제는 아래 링크를 확인하자.

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

 

18310번: 안테나

첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수로 주어진다.

www.acmicpc.net

안테나를 설치해야하는 지점이 집일 필요가 없다고 생각하고 집이 아닌 곳에 안테나를 한 곳 설치했다고 생각해보자.

이 때, 이 안테나의 좌우에 있는 집의 수가 다르다면 집이 더 많은 쪽으로 안테나를 움직일 수록 집과 안테나 사이 거리 총합이 감소한다는 것을 관찰할 수 있다.

 

위의 관찰을 이용하여 안테나를 어디에 설치해야 좋을지 결과를 도출해낼 수 있다.

 

아래는 제출한 소스코드이다.

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

int arr[200000];

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	int N; cin >> N;
	for (int i = 0; i < N; i++) cin >> arr[i];

	sort(arr, arr + N);

	cout << arr[(N - 1) / 2];
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 13707 // C++] 합분해 2  (0) 2022.02.06
[BOJ 16938 // C++] 캠프 준비  (0) 2022.02.05
[BOJ 1246 // C++] 온라인 판매  (0) 2022.02.03
[BOJ 1940 // C++] 주몽  (0) 2022.02.02
[BOJ 2012 // C++] 등수 매기기  (0) 2022.02.01

+ Recent posts