※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 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 |