[BOJ] 10819. 차이를 최대로
15 Apr 2026
Reading time ~1 minute
풀이
import java.util.Scanner;
public class Main {
static Scanner sc=new Scanner(System.in);
static int N=sc.nextInt();
static int arr[]=new int [N];
static boolean check[]=new boolean [N];
static int ans=Integer.MIN_VALUE;
static int perm[]=new int [N];
public static void main(String[] args) {
for (int i = 0; i < N; i++) {
arr[i]=sc.nextInt();
}
go(0);
System.out.println(ans);
}
public static void go(int d) {
if(d==N) {
int tmp=0;
for (int i = 0; i < N-1; i++) {
tmp+=Math.abs(perm[i+1]-perm[i]);
}
if(tmp>ans) {
ans=tmp;
}
return;
}
for (int i = 0; i < N; i++) {
if(!check[i]) {
check[i]=true;
perm[d]=arr[i];
go(d+1);
perm[d]=0;
check[i]=false;
}
}
}
}