1. 문제
https://www.acmicpc.net/problem/10819
2. 풀이 과정
순열로 모든 경우의 수를 구하고, 순열마다 계산해서 최대값을 찾는다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int N;
static int[] arr, selected;
static int result;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
arr = new int[N];
selected = new int[N];
result = 0;
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i=0; i<N; i++){
arr[i] = Integer.parseInt(st.nextToken());
}
permutation(0, new boolean[N]);
System.out.println(result);
}
public static void permutation(int count, boolean[] visited) {
if(count == N) {
cal();
return;
}
for(int i = 0; i < N; i++) {
if(visited[i]){continue;}
visited[i] = true;
selected[count] = arr[i];
permutation(count+1, visited);
visited[i] = false;
}
}
public static void cal() {
int sum = 0;
for(int i = 1; i < N; i++) {
sum += Math.abs(selected[i - 1] - selected[i]);
}
result = Math.max(result, sum);
}
}
결과
'코딩문제풀이 > Baekjoon' 카테고리의 다른 글
[Java] 백준 1747번 : 소수&팰린드롬 (0) | 2022.12.28 |
---|---|
[Java] 백준 15591번 : MooTube (Silver)* (0) | 2022.12.27 |
[Java] 백준 13335번 : 트럭 (0) | 2022.12.25 |
[Java] 백준 11403번 : 경로 찾기 (0) | 2022.12.24 |
[Java] 백준 2210번 : 숫자판 점프 (0) | 2022.12.24 |