반응형
'안테나' 문제 입니다. 일직선상의 집의 위치가 주어지고, 안테나는 집의 위치중 한군데만 설치 할 수 있습니다. 이때 안테나로 부터 모든 집의 위치까지 거리의 합이 최소가 되는 안테나의 위치를 출력 하는 문제 입니다. 집의 위치는 값의 상관없이 랜덤하게 배열로 주어 집니다.
1. 접근
1. 집의 위치가 들어있는 배열을 오름차순으로 정렬 합니다.
2. 정렬된 배열 에서 중간 인덱스 값을 계산 합니다.
3. 중간 인덱스 값의 해당하는 집의 위치가 모든 집들의 거리의 합이 최소가 되는 지점 입니다.
import java.util.Arrays;
public class Page360 {
//입력 예시
//4 (집의 개수)(1 <= N <= 200000)
//5 1 7 9 (집의 위치)(1 <= M <= 100000)
//출력 예시
//5 (안테나 부터 집까지의 합이 최소가 되는 안테나 설치 위치)
public static void main(String[] args) {
int N = 4;
int[] arr = {5, 1, 7, 9};
System.out.print(new Page360().solution(N, arr));
}
int solution(int N, int[] arr){
//(배열의 갯수 / 2) 의 인덱스의 해당하는 집 위치 반환
Arrays.sort(arr);
return arr[(N-1)/2];
}
}
반응형
'Algorithm' 카테고리의 다른 글
자물쇠와 열쇠 - '2020 카카오 코딩 테스트' (0) | 2020.09.04 |
---|---|
문자열 압축 - '2020 카카오 코딩 테스트' (0) | 2020.09.03 |
연구소 - '이것이 코딩 테스트다 with 파이썬' (0) | 2020.09.01 |
문자열 뒤집기 - '이것이 코딩 테스트다 with 파이썬' (0) | 2020.09.01 |
바닥 공사 - '이것이 코딩 테스트다 with 파이썬' (0) | 2020.09.01 |