백준 - 안테나 [18310]

노력하는 배짱이·2021년 1월 20일
0

백준 알고리즘

목록 보기
5/35
post-thumbnail

문제

요약

  • N 개의 집이 위치와 함께 주어짐
  • 특정 집에 안테나 설치했을 때 각각의 집과의 거리의 합이 최소인 곳을 구하기

입력

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

출력

첫째 줄에 안테나를 설치할 위치의 값을 출력한다. 단, 안테나를 설치할 수 있는 위치 값으로 여러 개의 값이 도출될 경우 가장 작은 값을 출력한다.

풀이

주어진 집 위치를 오름차순으로 정렬한 뒤 가운데 값을 구해주면 된다. 왜냐하면 다른 집과의 거리의 합이 최소가 되려면 가운데 위치에 있어야 하기 때문이다.

소스

import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int n = sc.nextInt();
		
		ArrayList<Integer> al = new ArrayList<Integer>();
		
		for(int i=0; i<n; i++) {
			al.add(sc.nextInt());
		}
		
		Collections.sort(al);
		
		int median = (n-1) / 2;
		
		System.out.println(al.get(median));
		

	}

}

0개의 댓글