vito 의 여러 명의 친척은 라마피아거리에 살고 있다. 이 거리에 있는 친척을 모두 방문하고자 하는 경우 어떤 집에 머무는 것이 모든 집을 방문하는데 합이 최소가 되는 지를 구하는 것이 문제이다.
예를 들어 친척들이 2 4 6 번 집에 사는 경우
2 번집에 머무는 경우
4 번집에 가는 거리는 2
6 번집에 가는 거리는 4
6 ( 2 + 4 ).
4 번 집에 머무는 경우
4 번 집에서 2 번집에 가는데 거리가 2 이고
4 번 집에서 6 번집에 가는 경우 거리가 2 이므로
합이 4 로 최소이다.
답
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
int n =scanner.nextInt();
int arr[] = new int[n];
int count =0;
for(int i=0; i<n; i++ ){
arr[i]= scanner.nextInt();
}
for(int i=0 ;i<n-1; i++){
for(int j=i+1; j<n; j++){
if (arr[i] >arr[j]) {
int empty = arr[i];
arr[i] = arr[j];
arr[j] = empty;
}
}
}
int sum = 0;
if (n % 2 != 0) {
for(int i=0; i<n/2; i++) {
sum+= arr[n/2] - arr[i];
}
for(int i=n-1; i>n/2 ; i--) {
sum+= arr[i] - arr[n/2];
}
System.out.println(sum);
} else {
for(int i=0; i<n/2-1; i++) {
sum += arr[n/2-1] - arr[i];
}
for(int i=n-1; i>n/2-1; i--) {
sum+= arr[i] - arr[n/2-1];
}
System.out.println(sum);
}
}
문제 http://59.23.150.58/30stair/vito/vito.php?pname=vito
답
import java.util.Scanner;
public class Main { public static void main(String args[]) {
}