문제 설명
https://www.acmicpc.net/problem/18310
18310번: 안테나
첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수로 주어진다.
www.acmicpc.net
해결 방법
가운데에 있는 집에 안테나를 설치할 경우 가장 효율적이다
N이 홀수일 경우 N/2번째 집에 설치
N이 짝수일 경우 N/2-1 번째 집에 설치
+ "단, 안테나를 설치할 수 있는 위치 값으로 여러 개의 값이 도출될 경우 가장 작은 값을 출력한다."
라는 조건을 만족하기 위해서 N이 짝수일 경우 -1을 해주는 것이다.
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
int main()
{
int N; cin >> N;
vector <int> houses(N);
for (int i = 0; i < N; i++){ cin >> houses[i]; }
sort(houses.begin(), houses.end());
int result = N % 2 == 0 ? N / 2 - 1 : N / 2;
cout << houses[result];
}
'개발 > 백준' 카테고리의 다른 글
[백준] 1003번. 피보나치 함수 (C++) (0) | 2023.12.27 |
---|---|
[백준] 19941번. 햄버거 분배 (1) | 2023.12.26 |
[백준] 1449번. 수리공 항승 (C++) (0) | 2023.12.20 |
[백준] 13305번. 주유소 (C++) (1) | 2023.12.20 |
[백준] 10451번. 순열 사이클 (C++) (0) | 2023.07.19 |