본문 바로가기

두두의 알고리즘/문제

[정렬] 난이도1, 백준 18310번 '안테나' (Python)

728x90

<문제 링크>

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

 

18310번: 안테나

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

www.acmicpc.net


<문제 풀이>

  1. 집의 위치가 정렬되어 있지 않으므로 정렬
  2. 정렬 후 배열의 중앙값에 안테나를 설치했을 때 거리의 총합이 최소가 됨
  3. 집의 개수를 반으로 나누면 중앙값이 나옴. 단, 배열은 0부터 시작하므로 1을 빼줌

<코드>

'''입력예시
4
5 1 7 9
'''

n = int(input())
house = list(map(int,input().split()))
house.sort()

print(house[(n-1)//2])

 

<고쳐야 할 점>

  • 필요 없이 주어지는 입력값은 없다
  • 나머지보단 몫을 활용하기
  • 해당 공식 외우기
  • 복습 알고리즘