본문 바로가기

백준 파이썬 코딩

백준 18310 안테나 파이썬

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

 

18310번: 안테나

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

www.acmicpc.net

모든 집까지의 거리의 총 합이 최소가 되는 경우를 구하는 것인데 최소가 되는 경우는 모든 집을 일렬로 나열했을때 중간에 있는 집을 고르는 경우이다.

따라서 n이 홀수일때는 s[n//2]을 출력해주면 되고 n이 짝수일때는 s[n//2]와 s[n//2-1]에 안테나를 설치 했을 경우에 합이 최소가 되는데 더 작은 값을 출력하라고 했으니 s[n//2-1]을 출력해주면 된다.

n =int(input())
s = list(map(int,input().split()))
s.sort()
if n%2==0:
    print(s[n//2-1])
else:
    print(s[n//2])