문제 출처
https://www.acmicpc.net/problem/10819
10819번: 차이를 최대로
첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다.
www.acmicpc.net
접근 방식 및 풀이
- N의 값이 최대 8까지 이므로 배열로 만들수 있는 모든 수열들의 케이스를 조사(순열 개념 적용)
- 각 배열로 구한 값들중 가장 큰 값을 출력한다.
소스 코드
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | import java.util.Arrays; public class Main {     static int n ;     static int[] arr;     static int result;     static int[]  tArr;     static boolean[] visited;     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         n =  sc.nextInt();         arr =new int[n];         for (int i = 0; i <n ; i++) {             arr[i] =sc.nextInt();         }         visited =new boolean[n];         tArr =new int[n]; // 각순열 케이스를 담아줄 임시 저장소         result=0;         solve(0);         System.out.println(result);     }     private static void solve(int count){         if(count == n){             int sum =0;             for (int i = 0; i <n-1 ; i++) {             }             result = Math.max(result,sum);             return;         }         for (int i = 0; i <n ; i++) { // 각순열 케이스생성             if(visited[i]){                 continue;             }             visited[i] =true;             tArr[count] = arr[i];// 담는다.             solve(count+1);// 재귀로 그 다음 index 늘려간다.             visited[i] =false;// 다 만들고 false로 해제         }     } } http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter | 
결과

'Competition > Baekjoon' 카테고리의 다른 글
| [백준] 1182번 자바 부분수열의 합 (0) | 2020.04.30 | 
|---|---|
| [백준] 1208번 자바 부분수열의 합2 (0) | 2020.04.27 | 
| [백준] 6603번 자바 로또 (0) | 2020.04.27 |